Cron
以 apache 使用者身份創建 cron 並以 root 使用者身份執行
我正在以 apache 使用者身份創建這個 cron 並希望以 root 身份執行這個 cron,下面是我的程式碼片段:
# Create a cron job to restart apache cron_file="/etc/cron.d/restart_apache_crontab" cron_job="*/1 * * * * root condrestart-apache.sh" echo "$cron_job" > $cron_file chmod 777 $cron_file exit 0
為 cron.d 目錄提供了足夠的權限(將目錄組更改為 apache 使用者),腳本使用上述腳本在 /etc/cron.d/ 處生成了一個 cron 文件 restart_apache_crontab
condrestart-apache.sh 包含以下程式碼,並具有足夠的 apache 使用者訪問權限:
rm -f /etc/cron.d/restart_apache_crontab /sbin/service httpd restart > restart-apache.log
這將首先刪除 cron 然後重新啟動 apache(意味著 cron 將只執行 1 次)
我能夠以 apache 使用者身份創建 cron,但無法以 root 使用者身份執行它。
請幫我解決這個問題.. 程式碼片段將非常有幫助..
在 cronjob 中
"*/1 * * * * root condrestart-apache.sh"
,我希望您的重啟腳本有一個絕對路徑,例如/usr/local/sbin/condrestart-apache.sh
.並且 condrestart-apache.sh 必須是可執行的(例如
chmod 755
)shell 腳本,當然還包括#!/bin/sh
您的程式碼片段中缺少的內容。重新啟動 Apache 的主要原因是影響配置更改,因此在嘗試重新啟動 Web 伺服器並終止它之前檢查語法是否正確可能也是一個好主意……
#!/bin/sh # /usr/local/sbin/condrestart-apache.sh rm -f /etc/cron.d/restart_apache_crontab RETVAL=0 /usr/sbin/apachectl configtest RETVAL=$? if [ $RETVAL -ne 0 ]; then echo "Configuration file invalid" exit 1 fi /sbin/service httpd restart RETVAL=$? if [ $RETVAL -ne 0 ]; then echo "Restart Failed" exit 1 fi