linux計畫任務

2021-10-04 05:48:06 字數 4222 閱讀 2550

作用: 計畫任務主要是做一些週期性的任務,目前最主要的用途是定期備份資料

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...