系統級別的定時任務: 臨時檔案清理、系統資訊採集、日誌檔案切割
使用者級別的定時任務: 定時向網際網路同步時間、定時備份系統配置檔案、定時備份資料庫的資料
crond只能控制,這個任務多久執行一次,至於是什麼任務與crond無關
vim /etc/crontab
shell=/bin/bash #執行命令的直譯器
path=/sbin:/bin:/usr/sbin:/usr/bin #環境變數
mailto=root #郵件發給誰
# 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 #星期
# | | | | |
# * * * * * command to be executed
* 表示任意的(分、時、日、月、周)時間都執行
- 表示乙個時間範圍段, 如5-7點
, 表示分隔時段, 如6,0,4表示周
六、日、四
/1 表示每隔n單位時間, 如*/10 每10分鐘
00 02 ***
ls#每天的凌晨2點整執行
00 02 1 **ls
#每月的1日的凌晨2點整執行
00 02 14 2 *
ls#每年的2月14日凌晨2點執行
00 02 *
* 7 ls
#每週天的凌晨2點整執行
00 02 * 6 5 ls
#每年的6月周五凌晨2點執行
00 02 14 * 7 ls
#每月14日或每週日的凌晨2點都執行
00 02 14 2 7 ls
#每年的2月14日或每年2月的周天的凌晨2點執行
*/10 02 ***
ls#每天凌晨2點,每隔10分鐘執行一次**
***ls
#每分鐘都執行
00 00 14 2 *
ls#每年2月14日的凌晨執行命令
*/5 ***
*ls#每隔5分鐘執行一次
00 02 * 1,5,8 *
ls#每年的1月5月8月凌晨2點執行
00 02 1-8 **ls
#每月1號到8號凌晨2點執行
0 21 ***
ls#每天晚上21:00執行
45 4 1,10,22 **ls
#每月1、10、22日的4:45執行
45 4 1-10 *
* l #每月1到10日的4:45執行
3,15 8-11 *
/2 **ls
#每隔兩天的上午8點到11點的第3和第15分鐘執行
0 23-7/1 ***
ls#晚上11點到早上7點之間,每隔一小時執行
15 21 *
* 1-5 ls
#周一到周五每天晚上21:15執行
引數
含義-e
編輯定時任務
-l檢視定時任務
-r刪除定時任務
-u指定其他使用者
#1.如何同步時間
ntpdate time.windows.com &>/dev/null
#2.配置定時任務
crontab -e -u root
crontab -l -u root
*/5 ***
* ntpdate time.windows.com &>/dev/null
將備份命令寫入乙個指令碼中
每天備份檔案名要求格式:2020-04-10_15_54etc.tar.gz
存放備份內容的目錄要求只保留三天的資料
在執行計畫任務時,不要輸出任務資訊
#1.實現需求命令
mkdir -p /backup
tar czf /backup/$(date +
%f_%h_%m)etc.tar.gz /etc/
find -
type f -name '*.tar.gz'
-mtime +3 -delete
#2.將命令放入指令碼中
cat/tmp/backup.sh
#!/user/bin/bash
mkdir -p /backup
tar czf /backup/$(date +
%f_%h_%m)etc.tar.gz /etc/
find -
type f -name '*.tar.gz'
-mtime +3 -delete
#3.放入計畫任務
crontab -l
#測試*/2 ***
*/usr/bin/sh /tmp/backup.sh &>/dev/null
通過查詢/var/log/cron中執行的記錄,去推算任務執行的時間
#1.拿到所有執行過的任務
grep "cmd"
/var
/log/cron | awk -f '('''|
sort
|uniq
#2.根據執行的任務。去過濾 ,然後找到他的執行時間和週期。
grep "/usr/bin/sh /tmp/backup.sh &>/dev/null"
/var
/log/cron
定時的備份/var/spool/cron/
(檔名取決於你是什麼使用者)
#使用root將需要拒絕的使用者加入/etc/cron.deny
echo
"u1" >> /etc/cron.deny
調整任務每分鐘執行的頻率, 以便做後續的除錯。
如果使用cron執行指令碼,請將指令碼執行的結果寫入指定日誌檔案, 觀察日誌內容是否正常。
命令使用絕對路徑, 防止無法找到命令導致定時任務執行產生故障。
通過檢視/var/log/cron日誌,以便檢查我們執行的結果,方便進行除錯。
手動執行命令,然後保留執行成功的結果。
編寫指令碼
指令碼需要統一路徑/scripts
指令碼內容複製執行成功的命令(減少每個環節出錯機率)
指令碼內容盡可能的優化, 使用一些變數或使用簡單的判斷語句
指令碼執行的輸出資訊可以重定向至其他位置保留或寫入/dev/null
執行指令碼
使用bash命令執行, 防止指令碼沒有增加執行許可權(/usr/bin/bash)
執行指令碼成功後,複製該執行的命令,以便寫入cron
編寫計畫任務
加上必要的注釋資訊, 人、時間、任務
設定計畫任務執行的週期
貼上執行指令碼的命令(不要手敲)
除錯計畫任務
增加任務頻率測試
檢查環境變數問題
檢查crond服務日誌
初級運維個人運維筆記
實時抓取並顯示當前系統中tcp 80埠的網路資料資訊,請寫出完整操作命令 tcpdump nn tcp port 80 如何重置mysql root密碼?一 在已知mysql資料庫的root使用者密碼的情況下,修改密碼的方法 1 在shell環境下,使用mysqladmin命令設定 mysqladm...
linux運維學習筆記
1 顯示 etc目錄下所有以l開頭,以乙個小寫字母結尾,且中間出現至少一位數字的檔案或目錄 ls d etc l digit lower 2,顯示 etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄 ls d etc digit 1 3 顯示 etc 目錄下以非字母開頭,後面跟了乙個字母及其...
學習Linux運維的個人筆記 基本許可權(十三)
許可權的定義 許可權的意義 許可權與使用者之間的關係ll root d dr xr x 2 root root 215 mar 15 19 43 root d 檔案型別 第乙個r x 屬主權限位 讀和執行許可權 第二個r x 屬組許可權位 讀和執行許可權 其他使用者許可權位 無許可權 root無視許...