Верно ли, что `od` не может показывать двоичное число?

Я "решил" свою проблему, используя ssh для создания временного файла на клиенте

ssh -o ConnectTimeout=5 USER@CLIENT_HOST '/usr/bin/touch /tmp/watchdog.hook' 

Это вызывалось cron каждую минуту на моем сервере с помощью команды cron ниже

*  *    * * *   /path/to/script/watchdog-server.sh

На стороне клиента я пытаюсь удалить временный файл, и если это не удается, счетчик будет увеличиваться, и если он равен трем, он перезагрузит сеть, а если равен пяти, он перезагрузит машину. В случае успеха счетчик будет сброшен.

counter_file="/tmp/watchdog.counter"
if [ ! -f "$counter_file" ]; then
    printf '0\n' >"$counter_file"
fi
counter_curr=$(< "$counter_file")
rm /tmp/watchdog.hook
if [ $? -eq 0 ]; then
    counter_curr=0
else
    (( ++counter_curr ))
    if [ "$counter_curr" -eq 3 ]; then
        echo "No network connection, restarting wlan0 at $(date)"
        /sbin/ifdown 'wlan0'
        sleep 5
        /sbin/ifup --force 'wlan0'
    elif [ "$counter_curr" -ge 5 ]; then
        echo "No network connection, rebooting machine at $(date)"
        /sbin/shutdown -r now
    fi
fi
printf '%s\n' "$counter_curr" >"$counter_file"

Мы хотим подождать 30 секунд перед запуском скрипта на клиенте, поэтому добавим в cron следующее:

*   * * *   * ( sleep 30 ; /path/to/script/watchdog-client.sh )
0
16.11.2018, 00:58
2 ответа

Нет, стандартная odутилита не может создавать дампы данных в виде двоичных чисел (в виде символов 0и 1только ), равно как и реализация GNU coreutils или реализация od, найденная в большинстве систем BSD.

1
28.01.2020, 02:31

Сast-openodили встроенным odиз ksh93, если он построен как часть ast -, вы можете использовать-t b:

$ ksh -c 'echo x | command /opt/ast/bin/od -tb'
0000000 01111000 00001010
0000002
1
28.01.2020, 02:31

Теги

Похожие вопросы