Я впервые использую cron. Я хочу перезапустить apacher на моем сервере, если объем доступной памяти превышает 500 МБ. Для этого я написал следующий скрипт:
restart_if_memory_full.sh (in / var / www / myapp /)
#!/bin/bash
mem=$(free -m | awk '/Mem:/{print $4}')
(( mem <= 500 )) && (sudo service apache2 restart)
Затем я выполнил его, выполнив(sudo chmod +x restart_if_memory_full.sh
) и добавил следующую строку в cron с помощью (sudo crontab -e
) (Обратите внимание, что я не использовал расширение .sh в соответствии с рекомендациями)
* * * * * /var/www/myapp/restart_if_memory_full
Теперь я проверяю вывод по (grep CRON /var/log/syslog
) и посмотрите это:
Nov 11 11:13:01 mardy2 CRON[31963]: (root) CMD (/var/www/myapp/restart_if_memory_full)
Nov 11 11:13:01 mardy2 CRON[31962]: (CRON) info (No MTA installed, discarding output)
Однако, когда я проверяю использование памяти htop, оно не уменьшается, и поэтому я понял, что сервер apache не был перезапущен. Итак, как мне сделать этот скрипт работоспособным?