1. 程式人生 > >Linux計劃任務

Linux計劃任務

crontab linux

開機自動啟動服務

Centos7:systemctl is-enabled "servicename"

systemctl enabled "servicename"(設為開機啟動)

Centos6:chkconfig --list "servicename"

chkconfig --add "servicename"(1 設為開機啟動)

chkconfig "servicename" on(2 設為開機啟動)

計劃任務

at:atd服務,適用於一次性的計劃任務

at [option] 時間(默認情況下所有的標準輸出都不會顯示,執行結果會以郵件方式發送在)

建議:如果腳本要放到計劃任務中執行,要將執行結果輸入到/dev/null中,否則會產生大量的垃圾郵件

at "time" wall 10:00 clock(到了10:00廣播10:00到了 Ctrl -d保存退出)

/var/spool/at下存有計劃任務

-l 查看計劃任務

-c "任務編號" :顯示詳細的任務信息

-d "任務編號"或 atrm "任務編號":刪除指定任務編號

-V 查看當前atd服務版本

由於at是交互式程序,當需要腳本來創建計劃任務的時候則可以使用重定向輸入:at 12:00 <<EOF,然後輸入指定內容即可

-f "文件名" 將文件內容輸入到at中

-m 當計劃任務完成後判斷是否成功

TIME:定義出什麽時候進行at這項任務的時間

HH:MM[yyyy-mm-dd]定義年月日

noon,midnight,teatime(4pm)

tomorrow

now+#{min,hours,days,weeks}

at now+20min(20分鐘後執行,20分鐘後的整數時間,其他時間相似於這個)


白名單:at.allow(默認不存在)

黑名單:at.deny(默認存在)

如果要使普通用戶不能執行at,則編輯/etc/at.deny,將要限制的用戶加入這個文件即可

如果一個用戶既在at.deny中也在at.allow(白名單)中則是允許執行

當有白名單at.allow這個文件後,就意味著所有不在at.allow文件中的普通用戶統統拒絕

如果沒有白名單也沒有黑名單則普通用戶都沒有權限執行at


周期性計劃任務cron

/var/spool/cron中存放創建的計劃任務

/var/log/cron中存放的是cron的日誌

crond服務依賴於一個cronie(主程序包)的包,提供crond服務,包含crond服務以及配置文件

cronie-anacron輔助程序包,rpm -ql cronie-anacron,會列出一系列目錄,當中/etc/anacrontab是配置文件

/etc/cron.daily存放每天執行的任務

crontab是計劃任務非常重要的一個配置文件

系統計劃任務:/etc/crontab

分鐘 小時 日 月 周(0 or 7都表示周日)

*/10 * * * * "username" "exec command" (每十分鐘執行)

每月的號 數與星期幾同時存在默認是或的關系

@reboot 重啟之後執行

@yearly 0 0 1 1 *(每年一月一號0點0分)

@annually 0 0 1 1 *(一月一號0點0分執行)

@monthly 0 0 1 * *(每月1號0點0分執行)

@weekly 0 0 * * 0(每個周日0點0分執行)

@daily 0 0 * * *(每天的0點0分執行)

@hourly 0 * * * *(每小時整執行)

* * * * *(每分鐘執行)

在計劃任務中,%符號有著特殊意義

/etc/cron.d/中可以存放一系列計劃任務文件

Centos6:/etc/cron.daily/tmpwatch中用來定時清除臨時文件的

Centos7:systemctl status systemd-tmpfiles-setup(查看清除臨時文件的程序狀態)

用戶計劃任務:

crontab -e(普通用戶創建計劃任務,默認打開的是vi程序,沒有顏色,編輯變量export EDITOR=vim即可)

crontab -l(查看計劃任務)

crontab -l -u 'username' 查看指定用戶的計劃任務

crontab -r -u 'username' 刪除指定用戶的計劃任務

crontab -i -r 出現是否刪除的提示信息

控制用戶執行計劃任務:

/etc/cron.{allow,deny}

sleep可以實現每幾秒實現一次

sleep 10;command(每10s執行一次)


Linux計劃任務