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

Linux系統的任務計劃

dconf sta 管理 comm pat sytem 命令 conf false

crontab周期性任務設置

# yum install cronie -y
# systemctl status crond.service
# systemctl start crond.service
# systemctl enable crond.service
[root@localhost etc]# 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

使用crontab命令管理用戶的計劃任務

-e //編輯計劃任務列表 
-u //指定所管理的計劃任務屬於哪個用戶,默認時針對當前用戶,一般只有root用戶才用權限使用此選項
-l //列表顯示計劃任務
-r //刪除計劃任務列表

用戶cron任務配置存放目錄

[root@localhost etc]# ls /var/spool/cron/

crontab -e

50 7 * * * /usr/bin/systemctl start sshd
50 22 * * * /usr/bin/systemctl stop sshd
0 * */5 * *  /usr/bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /usr/bin/sytemctl restart httpd
30 17 * * 1,3,5 /usr/bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

註意:在設置非每分鐘都執行的任務時,“分鐘”字段也應該填寫一個具體的時間數值,而不要保留為默認的“*”,否則將會在每分鐘執行一次計劃任務。

確認root用戶的計劃任務列表的內容

[root@localhost etc]# crontab -l
50 7 * * * /usr/bin/systemctl start sshd
50 22 * * * /usr/bin/systemctl stop sshd
0 * */5 * *  /usr/bin/rm -rf /var/ftp/pub/*
30 7 * * 6 /usr/bin/sytemctl restart httpd
30 17 * * 1,3,5 /usr/bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

確認jerry用戶的計劃任務列表的內容

[root@localhost ~]# crontab -l -u jerry
55 23 * * 0 /bin/cp /etc/passwd /home/jerry/pwd.txt
[root@localhost ~]# ls -l /var/spool/cron/jerry 
-rw-------. 1 jerry jerry 52 2月  23 13:38 /var/spool/cron/jerry

使用jerry用戶登錄後,查看並刪除自己的計劃任務列表

[jerry@localhost ~]$ crontab -l
55 23 * * 0 /bin/cp /etc/passwd /home/jerry/pwd.txt
[jerry@localhost ~]$ crontab -r
[jerry@localhost ~]$ crontab -l
no crontab for jerry

當需要按照同一周期運行多個任務時,通常會將相關命令操作編寫成腳本文件,然後在計劃任務配置中加載該腳本並執行

Linux系統的任務計劃