linux計畫任務

2022-08-25 15:06:22 字數 4551 閱讀 9758

做一些週期性的任務,在生產中主要定時備份資料

任務排程級別分為:

計畫任務的方式分為兩種

安裝at

[root@localhost ~]# yum install at
啟動atd服務

[root@localhost ~]# systemctl start atd

[root@localhost ~]# systemctl status atd

● atd.service - job spooling tools

loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)

active: active (running) since sat 2019-06-01 20:19:06 cst; 4s ago

main pid: 7404 (atd)

設定atd任務

[root@localhost ~]# at 12:35

at> mkdir /opt/hhh

at> job 4 at sat jun 1 12:35:00 2019

處通過ctrl+d儲存退出

設定atd任務的其他指定時間方式

at 20:00 2018-10-1  在某一天

at now +10min 在10分鐘之後執行

at 17:00 tomorrow 明天下午5點執行

at 6:00 pm +3 days 在三天以後的下午6點執行

檢視是否生效

[root@localhost ~]# date

sat jun 1 12:34:47 cst 2019

[root@localhost ~]# ls /opt/

[root@localhost ~]# date

sat jun 1 12:35:17 cst 2019

[root@localhost ~]# ls /opt/

hhh

檢視所有任務(atq | at -l)

[root@localhost ~]# at 20:00 2019-06-01

at> mkdir /opt/test

at> job 7 at sat jun 1 20:00:00 2019

[root@localhost ~]# atq

7 sat jun 1 20:00:00 2019 a root

[root@localhost ~]# at -l

7 sat jun 1 20:00:00 2019 a root

檢視具體任務的內容,需要使用上面檢視的編號

[root@localhost ~]# at -c 7

...$ << 'marcindelimiter11f8e4d7'

mkdir /opt/test

marcindelimiter11f8e4d7

或者可以檢視這些任務存放位置(沒有執行過的任務)

/var/spool/at/
刪除計畫任務

[root@localhost ~]# atrm 7

[root@localhost ~]# atq

[root@localhost ~]#

啟動服務

[root@localhost ~]# systemctl start crond

[root@localhost ~]# systemctl status crond

● crond.service - command scheduler

loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)

active: active (running) since sat 2019-06-01 19:49:40 cst; 6h left

main pid: 3933 (crond)

常用引數

crontab -e        編輯cron任務

crontab -r 刪除cron任務

crontab -u mk 指定mk使用者的cron服務

crontab -l 列出當前使用者的cron服務的詳細內容

crontab -u root -l 列出指定使用者的cron計畫任務

crontab -u mk -r root刪除mk使用者的cron計畫任務

-e編輯時的語法12

3456

符號***

***解釋

分鐘小時

幾號月份

星期幾command

取值範圍

0-59

0-23

1-31

1-12

0-6command

特殊符號含義

符號含義舉例*

代表取值範圍內的任意數字

任意 / 每一天

/指定時間的間隔頻率

*/10

-代表從某個數字到某個數字

8-17

,分開離散的幾個數字

6,12-18,21

測試:

每分鐘寫入hhhh到該檔案

[root@localhost ~]# crontab -e

* * * * * echo "hhhh" >> /opt/echo.txt

過一段時間檢視

[root@localhost ~]# cat /opt/echo.txt 

hhhh

hhhh

每天凌晨2點1分備份資料

[root@localhost ~]# crontab -e

1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2

指定使用者檢視計畫任務

[root@localhost ~]# crontab -u root -l

1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2

* * * * * echo "hhhh" >> /opt/echo.txt

如果別人通過某乙個使用者寫入計畫任務,但是我們不知道是哪一使用者,該如何排查呢

[root@localhost ~]# crontab -u bin -e
所有使用者的計畫任務,都會在/var/spool/cron/下產生相應的檔案

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

bin root

系統任務排程的配置檔案

/etc/crontab

[root@localhost ~]# 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 echo "hhhh" >> /opt/echo.txt
/etc/cron.d/ 是系統自動定期需要做的任務,但是又不是按照小時,天,星期,月來執行的,那就放在這個目錄下面

cron.deny 控制

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