Linux創建定時任務與日期格式化


-----轉載自網絡

1.創建定時任務

$ crontab -u //設定某個用戶的cron服務,一般root用戶在執行這個命令的時候需要此參數
$ crontab -e //編輯任務
$ crontab -l //顯示當前任務
$ crontab -r //刪除當前所有任務

 文本格式(crontab -e | cat /etc/crontab)

# .---------------- 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

 示例:

每天早上6點
-----------------
0 6 * * * echo "Good morning." >> /tmp/test.txt //注意單純echo,從屏幕上看不到任何輸出,因為cron把任何輸出都email到root的信箱了。
 
每兩個小時
-----------------
0 */2 * * * echo "Have a break now." >> /tmp/test.txt
 
晚上11點到早上8點之間每兩個小時,早上八點
-----------------
0 23-7/28 * * * echo "Have a good dream:)" >> /tmp/test.txt
 
每個月的4號和每個禮拜的禮拜一到禮拜三的早上11點
-----------------
0 11 4 * 1-3 command line
 
1月1日早上4點
-----------------
0 4 1 1 * command line
 

     每次編輯完某個用戶的cron設置后,cron自動在/var/spool/cron下生成一個與此用戶同名的文件,此用戶的cron信息都記錄在這個文件中,這個文件是不可以直接編輯的,只可以用crontab -e 來編輯。cron啟動后每過一份鍾讀一次這個文件,檢查是否要執行里面的命令。因此此文件修改后不需要重新啟動cron服務。

2.格式化時間

#獲取昨天日期 yyyyMMdd 格式
yesterday=`date --date='1 days ago' +%Y%m%d`
#獲取昨天日期 yyyy-MM-dd 格式
yesterday2=`date --date='1 days ago' +%Y-%m-%d`

#獲取今天日期 yyyyMMdd 格式
today=`date --date='0 days ago' +%Y%m%d`
#獲取今天日期 yyyy-MM-dd 格式
today2=`date --date='0 days ago' +%Y-%m-%d`

#獲取明天日期 yyyyMMdd 格式
today=`date --date='1 days' +%Y%m%d`
#獲取明天日期 yyyy-MM-dd 格式
today2=`date --date='1 days' +%Y-%m-%d`

#獲取當前時間 yyyy-MM-dd HH:mm:ss 格式
nowtime=`date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"`
#獲取當前日間 HH:mm:ss 格式
nowtime2=`date --date='0 days ago' +%H:%M:%S`

#獲取1小時前時間 yyyy-MM-dd HH:mm:ss 格式
onehourage=`date --date='1 hours ago' "+%Y-%m-%d %H:%M:%S"`
#獲取1小時后時間 yyyy-MM-dd HH:mm:ss 格式
onehourage2=`date --date='1 hours' "+%Y-%m-%d %H:%M:%S"`

#獲取2小時前時間 yyyy-MM-dd HH:mm:ss 格式
twohourage=`date --date='2 hours ago' "+%Y-%m-%d %H:%M:%S"`
#獲取2小時后時間 yyyy-MM-dd HH:mm:ss 格式
twohourage2=`date --date='2 hours' "+%Y-%m-%d %H:%M:%S"`

#獲取1個月前時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago' "+%Y-%m-%d %H:%M:%S"
#獲取1個月加1天前時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago + 1 day ago' "+%Y-%m-%d %H:%M:%S"
#獲取1個月減1天前時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago - 1 day ago' "+%Y-%m-%d %H:%M:%S"

#獲取1個月加1天加1小時加1分鍾加1秒鍾前時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month ago + 1 day ago + 1 hour ago + 1 min ago + 1 sec ago' "+%Y-%m-%d %H:%M:%S"
#獲取1個月加1天減1小時減1分鍾減1秒鍾前時間 yyyy-MM-dd HH:mm:ss 格式  可以 + - 濫用
date --date='1 month ago + 1 day ago - 1 hour ago - 1 min ago - 1 sec ago' "+%Y-%m-%d %H:%M:%S"

#獲取1個月加1天加1小時加1分鍾加1秒鍾后時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month + 1 day  + 1 hour  + 1 min  + 1 sec ' "+%Y-%m-%d %H:%M:%S"

#獲取1個月加1天減1小時減1分鍾減1秒鍾后時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"

#獲取1年后1個月加1天減1小時減1分鍾減1秒鍾后時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 year 1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"

#獲取1年前1個月加1天減1小時減1分鍾減1秒鍾后時間 yyyy-MM-dd HH:mm:ss 格式
date --date='1 year 1 month + 1 day  - 1 hour  - 1 min  - 1 sec ' "+%Y-%m-%d %H:%M:%S"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM