Просто принимая во внимание строки, которые начинаются или не начинаются с косой черты:
$ awk '/^[/]/ { sent+=$(NF-1); recv+=$NF }
/^[^/]/ && sent>0 && recv>0 { print sent, recv; sent = recv = 0 }' file
5.65273 767.912
14.2477 1680.58
19.8801 2308.97
Это просто добавляет к sent
и recv
строки, начинающиеся с символа косой черты. При обнаружении строки, которая не начинается с символа косой черты, текущие накопленные значения sent
и recv
выводятся (, а затем сбрасываются до нуля ). Вывод происходит только в том случае, если переменные содержат значение больше нуля.
Похоже, что удаленная оболочка не понимает здесь -строки(<<<string
). Здесь строки -являются расширением стандарта POSIX и не понимаются всеми оболочками.
Вместо этого сделайте перенаправление локально и просто позвоните at
удаленно:
sshpass -p 'passw' \
ssh -o StrictHostKeyChecking=no \
root@135.102.22.0 \
'at 11:04 Dec 10' <<<'touch /tmp/test_file'
Предполагается, что ваша локальная интерактивная оболочка поддерживает здесь -строки.
Вы также можете вообще не использовать здесь -строки:
echo 'touch /tmp/test_file' |
sshpass -p 'passw' \
ssh -o StrictHostKeyChecking=no \
root@135.102.22.0 \
'at 11:04 Dec 10'
или, для планирования более длинного сценария, используйте здесь -документ:
sshpass -p 'passw' \
ssh -o StrictHostKeyChecking=no \
root@135.102.22.0 \
'at 11:04 Dec 10' <<'END_AT_SCRIPT'
touch /tmp/test_file
# Possibly more
# commands here
END_AT_SCRIPT
или просто сохраните скрипт в файле и отправьте его:
sshpass -p 'passw' \
ssh -o StrictHostKeyChecking=no \
root@135.102.22.0 \
'at 11:04 Dec 10' <myscript.sh
Это то, что сработало для меня, когда дело доходит до планирования на работе. пример планирования отключения:
sshpass -p "passw" ssh "root@135.102.22.0" -o StrictHostKeyChecking=no **"echo shutdown -h now | at 13:35 Dec 13"**
А это работает из шелл-скрипта, пример создания файла:
at 13:14 Dec 13 <<EOF
touch /tmp/atran3
EOF