rsync
на удивление быстро и просто. Сначала вы должны создать пустой каталог,
mkdir emptydir rsync -a --delete emptydir/ yourdirectory/
yourdirectory /
- это каталог, из которого вы хотите удалить файлы.
Винс, для непрерывного мониторинга я рекомендую вам изучить решения с открытым -исходным кодом, такие как Nagios. Для вашего вопроса приведенный ниже сценарий BASH, prog _stat.sh, будет записывать DATE и PID в файл каждую секунду, затем вы можете добавить в сценарий анализ для изменения PID и добавить отслеживание -в действиях. CTRL -C, чтобы убить
У меня есть машина для Nagios dev. Этот скрипт предназначен для того, чтобы эта машина проверяла Nagios PID раз в секунду. Изменить частоту проверки, изменив режим сна
#!/bin/bash
PROG=Nagios
LOG=/home/user/nagios_pid.log
echo "" > $LOG
while true; do
PID=`ps ax | grep -i "$PROG" | awk 'NR==1{print $1}'`
echo `date -u` " " $PID >> $LOG
sleep 1
done
exit
Вывод сценария
[user ~]#cat nagios_pid.log
Sat Mar 30 11:15:50 UTC 2019 1171
Sat Mar 30 11:15:51 UTC 2019 1171
Sat Mar 30 11:15:52 UTC 2019 1171
Sat Mar 30 11:15:53 UTC 2019 1171
Sat Mar 30 11:15:54 UTC 2019 1171
Sat Mar 30 11:15:55 UTC 2019 1171
Sat Mar 30 11:15:56 UTC 2019 1261
Sat Mar 30 11:15:57 UTC 2019 1261
Sat Mar 30 11:15:58 UTC 2019 1261
Sat Mar 30 11:15:59 UTC 2019 1261
Разобраться на сдачу:
[user ~]# sort -k 7,7 -u nagios_pid.log
Sat Mar 30 11:15:50 UTC 2019 1171
Sat Mar 30 11:15:56 UTC 2019 1261
Теперь вы видите время перезапуска службы без ручного разбора потенциально длинного файла.
-Марк
Если ваша система управляется systemd, а многие современные системы имеют (тип systemctl
, чтобы проверить, так ли это ), вы можете настроить его для выполнения действий при перезапуске службы. Этот ответ на ServerFault дает только один пример.
Другое решение состоит в том, чтобы обернуть вашу службу в сценарий оболочки, который уведомляет вас о выходе. Однако это не сработает, если процесс демонизирует себя.