定時任務(crontab)

2022-09-08 03:06:14 字數 3394 閱讀 3581

cronie 實現定時任務功能*​atd 實現定時任務功能 只能一次設定定時功能 ​anacron 實現定時任務功能 應用在家用電腦 7*24伺服器

檢查軟體是否安裝 cronie

[root@oldboyedu ~]# rpm -qa cronie

•cronie-1.4.11-19.el7.x86_64

​•[root@oldboyedu ~]# rpm -ql cronie

•/etc/cron.deny

•/bin/crontab

rpm -ivh 軟體包.rpm --- 手動安裝軟體​-i install安裝​-v 顯示過程資訊​-h human 以人類可讀方式顯示資訊​說明: 無法解決軟體依賴關係

日誌檔案需要定期進行切割處理​周一 secure 100m​周二(00:00) mv secure secure-date +%f100m 切割後的檔案​ ​系統特殊目錄:​系統定時任務週期:每小時 控制定時任務目錄:/etc/cron.hourly

系統定時任務週期:每一天 控制定時任務目錄:/etc/cron.daily 00:00-23:59

系統定時任務週期:每一周 控制定時任務目錄:/etc/cron.weekly 7天

系統定時任務週期:每個月 控制定時任務目錄:/etc/cron.monthly 30 28 31

a 使用者定時任務檢視 crontab -l(list)​說明: 列表檢視定時任務資訊(cron table)

b 使用者定時任務編輯 crontab -e(edit)​說明: 編輯配置定時任務資訊

crontab -e 編寫定時任務 vi /var/spool/cron/ 定時任務配置檔案儲存目錄​ /var/spool/cron/root root使用者設定的定時任務配置檔案​/var/spool/cron/hgg hgg使用者設定的定時任務配置檔案

visudo 對普通使用者提權 vi /etc/sudoers

定時任務服務是否啟動/是否開機自動啟動
systemctl status crond

[root@hgg ~]# systemctl status crond

​● crond.service - command scheduler

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

active: active (running) since sun 2021-08-01 14:36:55 +08; 2h 53min ago

main pid: 6241 (crond)

cgroup: /system.slice/crond.service

└─6241 /usr/sbin/crond -n

​aug 01 14:36:55 hgg systemd[1]: started command scheduler.

aug 01 14:36:56 hgg crond[6241]: (cron) info (random_delay will be scaled with fac...d.)

aug 01 14:36:58 hgg crond[6241]: (cron) info (running with inotify support)

hint: some lines were ellipsized, use -l to show in full.

01、用數值表示時間資訊

00 02 *  *  *   備份檔案

02、利用特殊符號表示時間資訊

* * * * *  備份檔案
每分鐘 每小時 每天 每月 每週​ps: 定時任務最短執行的週期為每分鐘

*/5 */5 */5 * *

每隔5分鐘 每隔5小時每隔五天

01-05 02 * * *

01到05 02 * * *​指定時間的範圍:凌晨兩點01-05分

00 14,20 * * *​指定不連續的時間資訊:下午兩點與晚上八點

03、定時任務備份流程

1) 每天凌晨兩點備份 /data目錄到 /backup

第乙個歷程: 寫上時間資訊

00 02 * * *

第二個歷程: 寫上完成任務的具體命令

cp -a /data /backup

第三個歷程: 編寫定時任務

crontab -e

00 02 * * * cp -a /date /backup

04、 定時任務排查方法:

1、檢查是否有定時任務配置檔案cat /var/spool/cron/root ​

2、檢查定時任務日誌檔案​tail -f /var/log/cron

1) 編寫定時任務要有注釋說明

2) 編寫定時任務路徑資訊盡量使用絕對路徑

3) 編寫定時任務命令需要採用絕對路徑執行 /usr/sbin/useradd命令執行成功條件:useradd ---> $path ---> /sbin/useradd ---> 命令執行成功定時任務執行時,識別的path資訊只有: /usr/bin:/binuseradd命令--->usr/sbin/useradd

4) 編寫定時任務時,可以將輸出到螢幕上的資訊儲存到黑洞中,避免占用磁碟空間

* * * * * sh test.sh &>/dev/null

說明: 定時任務中執行命令,如果產生輸出到螢幕的資訊,都會以郵件方式告知使用者

/var/spool/mail/root         不斷變大占用磁碟空間       占用的block空間

解決方法: 將郵件服務關閉

systemctl stop postfix

​/var/spool/postfix/maildrop/ 不斷產生小檔案占用磁碟空間 占用的inode空間

解決方法: 刪除小檔案

rm -f /var/spool/postfix/maildrop/*

systemctl start postfix

5) 編寫定時任務, 盡量不要產生螢幕輸出資訊cp -a /data /backuptar zcvf /backup/data.tar.gz /data 有資訊輸出cd / tar zcf /backup/data.tar.gz ./data 沒有資訊輸出

6) 當需要多個命令完成乙個定時任務需求時,可以利用指令碼編寫定時vim backup.sh cp -a /data /backuptar zcvf /backup/data.tar.gz /data

crontab -e
* * * * */bin/sh /server/scripts/backup.sh &>/dev/null

crontab定時任務

今天工作項有個任務是讓ubuntu定時執行某個指令碼,對postgresql資料庫進行定時備份。linux 系統都有個cron定時任務的機制。今天做些筆記,以便日後翻查。注意 cron機制是有個使用者系統的概念的,即分系統cron和使用者cron,每個使用者所執行的cron任務可能不同。1.以roo...

crontab定時任務

基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第5列標識號星期0 6 0表示星期天 第6列要執行的命令 我的需求是定時備份mongodb 編寫任務執行的指令碼ba...

Crontab定時任務

我們可以使用crontab執行一些週期任務 crontab u user file crontab u user 將file做為crontab的任務列表檔案並載入crontab 編輯crontab檔案內容 顯示crontab檔案內容 刪除載入後的crontab檔案內容 每分鐘向使用者目錄下的log....