По умолчанию команда tee прекращает запись и закрывает файл после получения сигнала остановки (a Ctlr-C , посылаемый командой timeout ).
Просто добавьте опцию -i в tee и развлекайтесь.
Пример:
#!/bin/bash
while true; do
timeout -s 2 1h ping 96.120.16.121 |
ts '%Y-%m-%d~%H:%M:%S' |
tee -i ping_$(date +'%Y-%m-%d_%H.%M.%S').log
done
-121--216736-
Чтобы пропустить fsck
только один раз (вместо того, чтобы отключать его постоянно с помощью fstab
или tune2fs
), попробуйте использовать следующие параметры:
быстрых загрузок
GRUB перед загрузкой. Для получения дополнительной информации перейдите по ссылке https://wiki.ubuntu.com/Kernel/KernelBootParameters touch/fastboot
также следует пропустить проверку fsck
при следующей загрузке -121--39544-
Это выполняется бесконечно, никогда не перезапускает ping, ping периодически печатает статистику (настройте sleep
в следующем коде). Bash является необязательным, это совместимо с/bin/sh. Вы можете убить это с помощью CTRL-C или SIGHUP, SIGINT, SIQUIT или SIGTERM.
#!/bin/sh
trap 'kill -TERM $! 2>/dev/null; exit' HUP INT QUIT TERM
while true; do
(
ping localhost 2>&1 &
trap "kill -INT $!" HUP INT QUIT TERM
while true
do
sleep 5;
if ! ps $! > /dev/null || ! kill -QUIT $!
then break
fi
done &
wait
) |
ts '%Y-%m-%d~%H:%M:%S' |
tee -i ping_$(date +'%Y-%m-%d_%H.%M.%S').log
done
Исполняемый файл hadoop
в /usr/bin
является символической ссылкой на /usr/hdp/current/hadoop-client/bin/hadoop
. Вполне вероятно, что цель для этой символической ссылки не существует. Если он существует, следует исследовать его, чтобы убедиться, что он является исполняемым.
which
не отображал бы его, если символическая ссылка указывала на файл, в котором либо отсутствовала (неработающая символическая ссылка ), либо он не был исполняемым.
Кроме того, обычно лучше использовать command -v
, а не which
(, особенно в скриптах, которые должны быть переносимыми ).
Связанные: