linux下的定时任务处理
cron是linux的一個定時任務執行工具,而crondtab是周期性執行命令,crond則是定時任務的守護進程。下面我們進行一些實踐,希望小伙伴看完能跟著練習起來。
服務啟動
???? 查看服務是否啟動
[root@iz2ze0ajic0vbv28hcdctpz ~]#?systemctl?status?crond ●?crond.service?-?Command?SchedulerLoaded:?loaded?(/usr/lib/systemd/system/crond.service; enabled; vendor?preset: enabled)Active:?active?(running)?since?二?2018-11-13?11:50:47?CST;?1?day?10h?ago Main?PID:?489?(crond)CGroup: /system.slice/crond.service└─489?/usr/sbin/crond?-n11月?13?11:50:47?iz2ze0ajic0vbv28hcdctpz?systemd[1]:?Started?Command?Scheduler. 11月?13?11:50:47?iz2ze0ajic0vbv28hcdctpz?systemd[1]:?Starting?Command?Scheduler... 11月?13?11:50:47?iz2ze0ajic0vbv28hcdctpz?crond[489]: (CRON)?INFO?(RANDOM_DELAY will be scaled with factor?7...ed.) 11月?13?11:50:47?iz2ze0ajic0vbv28hcdctpz?crond[489]: (CRON)?INFO?(running with inotify support) Hint:?Some?lines?were?ellipsized,?use?-l?to?show?in?full.????如果沒有啟動,執行
????systemctl start crond
????systemctl enable crond
crontab命令
語法 :? crontab? 參數
常用參數? :?
????????????crontab -u? ?#指定用戶的cron信息
????????????crontab -l? ?#列出當前用戶下的cron服務的信息
????????????crontab -u user -l? ?#列出指定用戶的cron服務的信息
????????????crontab -r ??#刪除cron服務
????????????crontab -e ??#編輯cron服務
????????????crontab -r -u user? ?#刪除指定用戶的定時任務
?操作:
? ? 編輯cron服務
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -e crontab: installing?new?crontab? ? 查看當前用戶下任務內容
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l 22 22 22 * * mkdir /linux/test? ? 刪除任務
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -r [root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -l no?crontab?for?root? ? 查看qa這個用戶下的任務內容
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u?qa?-l 22?22?22?* *?mkdir?/linux/test? ?刪除qa這個用戶下的定時任務
[root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -r [root@iz2ze0ajic0vbv28hcdctpz ~]# crontab -u qa -l no?crontab?for?qa?
系統任務
? 系統的任務調度配置文件在/etc/crontab下
[root@iz2ze0ajic0vbv28hcdctpz ~]# ll /etc/crontab -rw-r--r--?1?root root?451?Nov?15?07:49?/etc/crontab? 可以直接在/etc/crontab下添加系統任務(不建議)
[root@iz2ze0ajic0vbv28hcdctpz ~]# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root# For details see man 4 crontabs# Example of job definition: # .---------------- minute (0 - 59) # | ?.------------- hour (0 - 23) # | ?| ?.---------- day of month (1 - 31) # | ?| ?| ?.------- month (1 - 12) OR jan,feb,mar,apr ... # | ?| ?| ?| ?.---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | ?| ?| ?| ?| # * ?* ?* ?* ?* user-name ?command to be executed? ?定時任務相關的目錄
[root@iz2ze0ajic0vbv28hcdctpz etc]#?ll?cr cron.d/ ? ? ? cron.deny ? ? cron.monthly/ cron.weekly/ cron.daily/ ? cron.hourly/ ?crontab ? ? ? crypttab目錄作用解釋:
????cron.d/??? ???是系統自動定期需要做的任務(不是按照時,分,秒等時間周期執行的)
????cron.deny? ?在該文件內的用戶無法做計劃任務
????其他文件為不同周期的執行腳本。
定時任務規則
?首先來看下任務的格式(如圖):
?
時間的一些特殊符號:
?
下面我們來舉一些例子:
#每晚的20:30重加載nginx 30?20?* * *?/usr/local/nginx/sbin/nginx -s reload? #每月1、10、15日的5:30重加載nginx 30?5?1,10,15?* *?/usr/local/nginx/sbin/nginx??-s reload?? #每天20:?00至22?:?00之間每隔30分鐘重加載nginx 0,30?20-22?* * *?/usr/local/nginx/sbin/nginx -s reload? 每星期六的10?:?00?pm 重加載nginx 0?22* *?6?/usr/local/nginx/sbin/nginx??-s reload? #每一小時重加載一次nginx 0?*/1 * * *?/usr/local/nginx/sbin/nginx?-s reload總結
以上是生活随笔為你收集整理的linux下的定时任务处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 由于市场原因 苹果突然降低产量
- 下一篇: 编程语言的发展