作用: 計畫任務主要是做一些週期性的任務,目前最主要的用途是定期備份資料
schedule one-time tasks with at. 一次性排程執行 at schedule recurring jobs with cron.
迴圈排程執行 cron schedule recurring system jobs.
所有計畫任務執行中的輸出都會以郵件的方式傳送給指定使用者, 除非重定向一次性排程執行 at
語法格式: at now +5min teatime tomorrow (teatime is 16:00) noon +4 days 5pm august 3 2018
例1:
[root@localhost ]
# yum -y install at
[root@localhost ]
# systemctl status atd
● atd.service - job spooling tools
loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
active: inactive (dead)
[root@localhost nginx]
# at now +1min
at>
useradd ehome001
at>
job 1 at tue jul 30 11:33:00 2019
can't open /var/run/atd.pid to signal atd. no atd running?
[root@localhost ]
# systemctl start atd //首先要啟動服務
[root@youngfit ~]
# at now +1min //一分鐘後開始執行
at>
useradd uuuu
at>
//ctrl+d
job 1 at sat mar 21 22:34:00 2015
[root@youngfit ~]
# id uuuu
例2:
[root@yang ~]
# vim at.jobs
useradd u99
useradd u00
touch /a.txt
[root@yang ~]
# at now +1min < at.jobs
例3:
1. 準備sudo使用者
[root@youngfit ~]# useradd jack -g wheel
[root@youngfit ~]# visudo
allows people in group wheel to run all commands
%wheel all=(all) all //使用者組提權,需要加百分號
same thing without a password
%wheel all=(all) nopasswd: all //此步驟不加,很有可能出現問題
errors: sudo: no tty present and no askpass program specified
[root@youngfit ~]# su - jack
[jack@youngfit ~]$ sudo useradd yy
2. 以sudo 使用者jack建立at任務
[jack@youngfit ~]$ vim jack.at
sudo useradd u200
sudo useradd u300
sudo touch /home/jack.txt
[jack@youngfit ~]$ at now +1min < jack.at
[root@youngfit ~]
# systemctl status crond.service
[root@youngfit ~]
# ps aux |grep crond
root 550 0.0 0.0 126300 1648 ? ss 10:05 0:00 /usr/sbin/crond -n
crond程序每分鐘會處理一次計畫任務
儲存位置:
[root@youngfit ~]
# ls /var/spool/cron/
root
管理方式:
crontab -l list the jobs
for the current user. //列出當前使用者的計畫任務
crontab -r remove all jobs
for the current users. //刪除當前使用者所有的計畫任務
crontab -e edit jobs
for the current user. //編輯當前使用者的計畫任務
語法格式 job format:
minutes hours day-of-month month day-of-week command
分鐘 小時 日 月 周 執行的命令
#crontab -e //當前使用者編寫計畫任務
#vim /home/youngfit.sh
touch /opt/a.txt
每天6:00執行
0 6 * * * /home/youngfit.sh
每天8:40執行
40 8 * * * /home/youngfit.sh
每週六凌晨4:00執行
0 4 * * 6 /home/youngfit.sh
每週六凌晨4:05執行
5 4 * * 6 /home/youngfit.sh
每週六凌晨5:00執行
0 5 * * 6 /home/youngfit.sh
每週一到周五9:30
30 9 * * 1-5 /home/youngfit.sh
每週一到周五8:00,每週一到周五9:00
0 8,9 * * 1-5 /home/youngfit.sh
每週六23:59
59 23 * * 6 /home/youngfit.sh
每天0:30
30 0 * * * /home/youngfit.sh
#crontab -l //列出計畫任務
00 00 * * * /home/youngfit.sh //每天凌晨
00 02 * * * ls //每天2:00整
00 02 1 * * ls //每月1號2:00整
00 02 14 2 * ls //每年2月14號2:00整
00 02 * * 7 ls //每週日2:00整
00 02 * 6 5 ls //每年6月的周五2:00整/
00 02 * * * ls //每天2:00整
*/5 * * * * ls //每隔5分鐘
00 02 1,5,8 * * ls //每月1,5,8號的2:00整
00 02 1-8 * * ls //每月1到8號的2:00整
使用者許可權檔案:
檔案:/etc/cron.deny
說明:該檔案中所列使用者不允許使用crontab命令
檔案:/etc/cron.allow
說明:該檔案中所列使用者允許使用crontab命令
這兩個檔案裡同時寫入乙個使用者,允許的優先匹配
Linux計畫任務
1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...
Linux 計畫任務
at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...
linux計畫任務
cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin se...