CROND 定時任務 - 學習

定時任務 CROND (守護進程)node

程序 : 靜止bash

進程 : 動態ide

crontab 設置命令 測試

     -l : list 列表spa

    -e : 編輯命令行

    -r : 刪除server

    -i : 刪除前確認blog

    -u : 指定操做用戶進程

[root@beiyong2 ~]# chkconfig --list crond   #能夠查看 crond 是否運行
[root@beiyong2 cron]# crontab -e   #編輯 定時文件 
############         #輸入若干#
[root@beiyong2 cron]# crontab -l      #查看定時任務
##########
[root@beiyong2 cron]# cat /var/spool/cron/root         #定時任務相對應的文件,不一樣用戶對應不一樣文件名
##########


[root@beiyong2 cron]# ls -l `which crontab`         # crontab 命令具備 SetUID 權限
-rwsr-xr-x. 1 root root 51784 3月  30 2015 /usr/bin/crontab


[root@beiyong2 cron]# cat /etc/crontab    #定時任務的基本格式 
crontab


wKiom1giq-jyAxTsAABnbQXKAfE569.jpg


" * " 表明 '每' 的意思     5 * * * *           #每五分鐘執行一次命令  

                                      00 23 * * *      #天天23點執行命令

                            

" - " 表明範圍              00 17-19 * * *        #天天17 18 19點整數點執行

" , " 表明分隔               30 17,18,19 * * *    #天天 17:30 18:30 19:30 執行

" /n " 表明每單位時間       */10 * * * *         #每10分鐘進行執行

30 3-5,17-19 * * *     #天天的3:30 4:30 5:30 17:30 18:30 19:30執行

30 */6 * * *               #每隔 6 個小時的半點時刻

30 8-18/2 * * *         #天天 8 點到 18 點每隔 2 個小時的半點時刻

30 21 * * *                #天天的 21:30 執行

45 4 1,10,22 * *        #每個月 1 號 10 號 22 號的 4:45 執行

10 1 * * 6,0               #每週六週日 1:10 執行

0,30 18-23 * * *        #天天18至23點之間,每間隔30分鐘重啓

00 */n * * *               #每隔 1 小時的整點

00 11 * 4 1-3           #4月的每週1,2,3的11點整

 

練習 : 每分鐘在 /server/log/haha 中打印 haha 的全拼     (在命令中先測試成功,而後添加定時任務)

[root@beiyong2 ~]# crontab -e
* * * * * echo "haha" >> /server/log/haha.txt         #添加將要執行的命令
[root@beiyong2 ~]# mkdir -p /server/log              #爲其建立目錄
[root@beiyong2 ~]# tail -f /server/log/haha.txt    #跟蹤一個文件(-f 動態查看)        
haha
haha


小結 : 

  1.   最好添加註釋

  2. /server/log 目錄須要事先存在

  3. 定時任務必定要使用絕對路徑

  4. crond 服務必須開啓運行

  5. 在命令行中先測試成功,在添加定時任務

  6. 生產任務程序不雅隨意打印輸出信息

  7. 定時任務執行的腳本要規範(/server/scripts)

  8. 配置定時任務規範操做過程


練習 : 每週六,日上午9:00和下午14:00,去學校上課 

要求 : /server/scripts/oldboy.sh 腳本的功能是打印當前的日期 : 格式爲 xxxx-xx-xx

[root@beiyong2 ~]# mkdir -p /server/scripts          #首先建立目錄
[root@beiyong2 scripts]# echo 'date +%F' > /server/scripts/date.sh      
[root@beiyong2 scripts]# chmod +x date.sh
[root@beiyong2 scripts]# ./date.sh           #在命令行中測試腳本
2016-07-16
[root@beiyong2 scripts]# crontab -e
00 9,14 * * 6,0 /bin/bash /server/scripts/date.sh  &> /dev/null   # &> /dev/null 能夠保證innode不會被佔用
df -i  能夠查看innode號是否被佔滿


練習 : 每隔 2 個小時將系統文件 /etc/service 文件打包備份到 /tmp 下 ( 每次備份按時間生成不一樣的備份包 )

#!/bin/bash      #在命令行中測試正確後寫入腳本,而且測試腳本正確性
cd /etc/ && tar -zcf /tmp/service_$(date +%F-%H).tar.gz ./services
[root@beiyong2 scripts]# crontab -l       
00 */2 * * * /bin/sh /server/scripts/services.sh &> /dev/null     #添加定時任務

1.到目標內容的上級目錄打包

2.打包的頻率是分,包名必須精確到分

3.確保命令執行正確,而後寫到腳本

相關文章
相關標籤/搜索