歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux基礎知識 >> Linux系統下使用Crontab修改庫表的疑惑

Linux系統下使用Crontab修改庫表的疑惑

日期:2017/3/2 15:04:45   编辑:Linux基礎知識
用法:

1. 用yz用戶登錄。

2. 用crontab -e 命令打開文件。寫入“0 1 * * * chg_date >/home/yz/yz.log”意思是在每天早上的1點,調用程序chg_date修改系統日期,將程序中的輸出放入yz.log文件。

3.用":x"命令存盤退出

根據我的了解“當對 crontab 所做的改變被保存後,該crontab 文件就會根據該用戶名被保存,並寫入文件 /var/spool/cron/username 中。cron 守護進程每分鐘都檢查 /etc/crontab 文件、etc/cron.d/ 目錄、以及 /var/spool/cron 目錄中的改變。如果發現了改變,它們就會被載入內存。這樣,當某個crontab 文件改變後就不必重新啟動守護進程了。”於是很懶就沒有測試。第二天上班查看庫表,居然還是昨天的日期。

這次查到新的命令:“/etc/rc.d/init.d/crond restart” ,可用來重啟cron服務 .於是乖乖修改了crontab文件,將時間改為每2分鐘後。等了一會兒,再查看庫表,還是沒有變動。

偶已經沒有耐心了,於是在辦公室裡開始用大嗓門問人:"#@*#……@?“這次連同事都很驚奇,”改了crontab就可以用了,不要重新啟的。“三個臭皮匠頂個諸葛亮,最後,Monitor提供了一個解決辦法,既然在yz用戶下建立crontab文件沒有用,那麼干脆在root用戶下建好了。

於是,偶重新用root用戶登錄,用crontab -e 寫道:“*/2 * * * * (su - yz -c chg_date 2>>/home/yz/yz.log)”。等了幾分鐘,看庫表,日期還是沒有變。真是有些沮喪了。抱著試試看的心情又把“/etc/rc.d/init.d/crond restart ”敲了一遍。幾分鐘後,偶終於看到日期變掉了。

問題解決,疑問還在心中:

1、為什麼在yz用戶下建立crontab沒有用?我已經看到/var/spool/cron/yz文件了。

2、為什麼一定要重起cron服務?明明很多同事在Linux下,用crontab -e 追加完命令就可以用了。

Copyright © Linux教程網 All Rights Reserved