linux的crontab绝对路径咋填,RHCE培训视频Crontab详解(创想云教育)
原標題:RHCE培訓視頻Crontab詳解(創想云教育)
RHCE8培訓視頻Crontab詳解
Linux 定時任務服務 crond (crontab 服務)
附課堂筆記:
[root@servera ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enable>
Active: active (running) since Sun 2020-11-22 09:12:19 CST; 5h 31min ago
Main PID: 739 (crond)
為什么需要定時任務服務crond 1 7*24 開機對外提供服務
重要數據:rsync tar
定時任務加 SHELL 腳本來實現自化備份
Linux 系統中定時任務分類:
1 系統自身的定時任務 7 段
2 用戶執行的定時任務 6 段
Crontab 在固定時間間隔執行指定的腳本或命令
[root@servera ~]# vim /etc/crontab # 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@servera ~]# whatis crontab
crontab (1) - maintains crontab files for individual users
crontab (1p) - schedule periodic background work crontab (5) - files used to schedule the execution of programs
-u define user
-e edit user's crontab
-l list user's crontab
-r delete user's crontab
定時任務的格式:
用戶執行的定時任務分為 6 段,每個段通過空格進行分隔
系統定時任務分為 7 段,空格進行分隔
30 22 * * * /scripts/memory.sh 前五段時間設定 第六段要執行的命令或者腳本
特殊符號:
* 號表示任意時間都
例如:小時使用*號等價于 0 – 23 分鐘* 等價于 0 – 59
- 減號,表示分隔符,表示一個時間范圍
30 12-16 * * * /scripts/memory.sh
,逗號,表示分隔時間段
30 12,16,19 * * * /scripts/memory.sh
/n n 代表數字,每隔 n 個單位時間 例如:每 10 分鐘執行一次任務
*/10 * * * * 等價于 0 – 59/10 * * * *
30 3,12 * * * /scripts/memory.sh
30 21 * * * /scripts/memory.sh 45 4 1,10,22 /scripts/memory.sh 10 1 * * 6,0 /scripts/memory.sh
* 23,00-07/1 * * * /scripts/memory.sh 不規范寫法
0 23,00-07/1 * * * /scripts/memory.sh
總結:
[root@servera ~]# crontab -u root -l 錯誤
* * * * * tar czvf /tmp/$(date +%F).etc.tar.gz /etc
crontab %號有特殊的作用,命令使用了%百分號,換行符Nov 22 02:01:01 jegui CROND[4783]: (root) CMD (tar czvf
/tmp/$(date +) date 格式化參數會被截掉,導致語法錯誤
[root@servera ~]# crontab -u root -l
* * * * * tar czvf /tmp/$(date +\%F).etc.tar.gz /etc
[root@servera scripts]# ll /tmp/20*
ls: cannot access '/tmp/20*': No such file or directory [root@servera scripts]# crontab -l -u root
* * * * * /scripts/backup.sh [root@servera scripts]# ll backup.sh
-rw-r--r--. 1 root root 55 Nov 22 15:08 backup.sh
[root@servera scripts]# crontab -l -u root
* * * * * /bin/sh /scripts/backup.sh
[root@servera scripts]# crontab -l
* * * * * /bin/sh /scripts/backup.sh &> /dev/null
[root@servera ~]# crontab -u root -l
* * * * * /bin/sh /scripts/backup.sh
[root@servera clientmqueue]# rm –rf * 如果文件太多,占用空間大, 刪除非常非常慢 /bin/rm argument list too long 錯誤[root@servera clientmqueue]# ls |xargs rm –f
總結:
1、定時任務的命令或程序最好寫到腳本里執行
2、執行shell 腳本任務前加/bin/bash 或 /bin/sh 注解: 腳本沒有執行權限, 可以執行
3、定時任務命令或腳本結尾添加 &> /dev/null 字符設備文件
注意:定時執行的程序有輸出或錯誤,輸出內容會以郵件形式發送給 cron 用戶,如果 sendmail 沒有啟動產生大量文件,消耗掉大量 inode,導致系統報錯No space left on device
4、定時任務腳本路徑寫絕對路徑
調試定時任務:
1 調整系統的時間 systemctl restart crond
通過 crontab 實現秒級定時任務[root@servera scripts]# cat demo.sh #!/bin/bash
step=1
for (( i=0; i<60; i=(i+step) ));do
$(date >> /mnt/file) sleep $step
done exit 0
實現定時任務秒級
[root@servera scripts]# cat backup.sh #!/bin/bash
while true;do
$(date >> /tmp/cloudshell) sleep 1
done
[root@servera ~]# at 19:30
warning: commands will be executed using /bin/sh at> yum update --security -y
at>
job 2 at Sun Nov 22 19:30:00 2020 [root@servera ~]# at -l
2 Sun Nov 22 19:30:00 2020 a root
錯誤: No space left on device df –TH 磁盤還有非常大的空間一個文件存儲到文件系統中,至少要占用一個 inode 和一個 block
關于更多視頻資料,請訪問:
https://www.cloudshelledu.com/redhat返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的linux的crontab绝对路径咋填,RHCE培训视频Crontab详解(创想云教育)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网文阅读付费模式为何重走回头路?
- 下一篇: 综合英语二课本电子版哪里有_全新版大学英