linux系統由cron(crond)這個系統服務來控制的,linux系統上原來有非常多的計划性工作,因此,這個系統服務是默認啟動的。
cron進程每分鍾會定期檢查是否有要執行的任務,如果有就自動執行該任務。
/etc/crontab
參考博客:https://www.cnblogs.com/intval/p/5763929.html
用戶編寫的任務,存放在/var/spool/cron/[user]中
minute hour day month week command
$ crontab -e # 進行編輯 $ crontab -l # 顯示當前任務的詳細就是/var/spool/cron/[user]文件中的內容 $ crontab -r # 從/var/spool/cron/中刪除用戶的crontab文件 $ service crond start # 啟動 $ service crond stop # 停止 $ service crond restart # 重啟 $ service crond reload # 重新加載 $ service crond status # 狀態
在ubuntu中,服務不是crond而是cron,使用crontab -e修改了內容,不需要重啟之類的,會自動生效
需要注意的是環境變量和加載文件的問題,
比如我想每分鍾記錄一下當前時間到一個文件:
方式一:使用crontab -e進行修改如下,不會記錄出來,應該是跟bash的加載方式有關,另一篇文章可能對這個有啟發:https://www.cnblogs.com/TheoryDance/p/10325493.html
*/1 * * * * echo `date +"%Y-%m-%d %H:%M:%S"` >> /home/master/environment/run_records.log
方式二:可行
*/1 * * * * sh /home/master/environment/record.sh
record.sh內容
#!/bin/bash echo `date +"%Y-%m-%d %H:%M:%S"` >> /home/master/environment/run_records.log