1. crontab -e
//測試,每一分鍾生成一個
*/1 * * * * cp /home/app/log/test.log /home/app/log/test`date -d yesterday +\%Y\%m\%d`.log
// 首先的在 /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/server1/bin/目錄下創建nohuplog文件夾,用來專門保存該日志
//真正 每天0點開始拷貝日志作為前一天的日志備份,然后把當前日志清空
0 0 * * * cp /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/server1/bin/nohup.out
/home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/server1/bin/nohuplog/nohup`date -d yesterday +\%Y\%m\%d`.out;
cat /dev/null > /home/weblogic/Oracle/Middleware/Oracle_Home/user_projects/domains/server1/bin/nohup.out
2. crontab -l檢查定定時任務
3. 查看crontab執行記錄(root權限)
查看定時任務的實時執行情況,成功與否不清楚
tail -f /var/log/cron
查詢上面執行情況的記錄,可以看到錯誤信息
tail -f /var/spool/mail/root
2.使用crontab來完成定時執行一次可執行任務
1)安裝crontab
[root@slaver1 hadoop]# yum install crontabs
[root@slaver1 hadoop]# service crond status #查看狀態
[root@slaver1 hadoop]# /sbin/service crond stop #關閉服務
[root@slaver1 hadoop]# /sbin/service crond start #啟動服務
[root@slaver1 hadoop]# /sbin/service crond restart #重啟服務
[root@slaver1 hadoop]# /sbin/service crond reload #重新載入配置
[root@slaver1 hadoop]# service crond start #手動啟動crontab服務
[root@slaver1 hadoop]# ntsysv #查看crontab服務是否已設置為開機啟動,執行命令
[root@slaver1 hadoop]# chkconfig –level 35 crond on #加入開機自動啟動
2)命令格式
crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
3)參數詳情
-u user:用來設定某個用戶的crontab服務,例如,“-u ixdba”表示設定ixdba用戶的crontab服務,此參數一般有root用戶來運行。
file:file是命令文件的名字,表示將file做為crontab的任務列表文件並載入crontab。如果在命令行中沒有指定這個文件,crontab命令將接受標准輸入(鍵盤)上鍵入的命令,並將它們載入crontab。
-e:編輯(編輯某個用戶的crontab文件內容。如果不指定用戶,則表示編輯當前用戶的crontab文件。)
-l:查看(顯示某個用戶的crontab文件內容,如果不指定用戶,則表示顯示當前用戶的crontab文件內容。)
-r:刪除(從/var/spool/cron目錄中刪除某個用戶的crontab文件,如果不指定用戶,則默認刪除當前用戶的crontab文件。)
-ir:刪除提示(在刪除用戶的crontab文件時給確認提示。)
4)編輯當前用戶的cron配置
crontab -e
#每小時去執行目錄下的shell文件
0*/1 * * * /home/test/test.sh
5)crontab文件格式:
minute hour day month week command
分 時 日 月 周 命令
minute: 表示分鍾,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數。
week:表示星期幾,可以是從0到7之間的任何整數,這里的0或7代表星期日。
command:要執行的命令,可以是系統命令,也可以是自己編寫的腳本文件。
例如:
* * * * * /home/test.sh #每一分鍾執行一次test.sh腳本
10,15 * * * * /home/test.sh #每小時的10,15分鍾各執行一次test.sh腳本
15 8 * * * /home/test.sh #每天早上8點15執行一次
15 8 1 jan * /home/test.sh #1月1號早上8點15執行一次
0 6 * * 6 /home/test.sh #每個星期六的早上6點執行一次
* 8 * * * /home/test.sh #每個早上8點執行一次
0 */2 * * * /home/test.sh #每兩小時執行一次
在以上各個字段中,還可以使用以下特殊字符:
星號(*):代表所有可能的值,例如month字段如果是星號,則表示在滿足其它字段的制約條件后每月都執行該命令操作。
逗號(,):可以用逗號隔開的值指定一個列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鍾執行一次。