1. 編輯定時任務
# 編輯定時任務
crontab -e
# 檢視當前使用者的定時任務
crontab -l
2.在開啟的檔案中新增你的任務
# 內容 就是 每1分鐘 執行一次 redis_cron.sh 日誌輸出到 redis.log 中
*/1 * * * * /bin/bash -x /root/redis_cron.sh >> /root/redis.log
3.指令碼 redis_cron.sh
#!/bin/bash
starttime=
$(date +%y-%m-%d\ %h:%m:%s)
echo
"$starttime 定時任務開始:"
count=
`ps -ef |
grep redis |
grep -v grep
|wc -l`
echo
$count
;# 如果redis 程序 小於等於 3 ,就啟動redis,因為我的 redis_cron.sh,redis.log,grep redis 佔了3個程序if[
$count -le 3 ]
then
echo
"啟動redis。。。"
docker start redis
fi
4.啟動定時任務
systemctl start crond.service
因為,這個指令碼切割實際上的io操作是非常多的,容易引起io阻塞,推薦日誌框架1.切割指令碼 log_rotate.sh
#!/bin/sh
function rotate()$
.$(date -d "yesterday" +"%y-%m-%d"
)>
$# 下面是刪除 7天之前的日誌檔案,看自己需求
# rm -f $.$(date -d "7 days ago" +"%y-%m-%d")
}for i in
$*do
rotate $i
done
2.手動切割
find ./ -size +0 -name '*.log'
|xargs ./log_rotate.sh
3.定時任務切割
# 每天 凌晨 00:00 執行 log_rotate.sh 引數:find /root/ -size +0 -name '*.log'匹配的檔案
0 0 * * * find /root/ -size +0 -name '*.log'
|xargs /root/log_rotate.sh
關於定時任務重置序列
前兩天擼 寫了pdf套打,今天發現還有乙個東西沒有實現就是需要重置序列,在每年的1月1日0點0時0分重置序列。雖然超級簡單,但是依然感覺好多坑,不知道是不是oracle版本問題導致的。首先我找了萬能的度娘,結果度娘給出了好幾個答案,首先是重置序列。很多大神給出了答案,就是反向生成,然後再設定成1的。...
linux定時任務 at定時任務
at命令是一次性定時計畫任務,at的守護程序atd會以後臺模式執行,檢查作業佇列來執行作業。atd守護程序會檢查系統上的乙個特殊目錄來獲取at命令的提交的作業,預設情況下,atd守護程序每60秒檢查一次目錄,有作業時,會檢查作業執行時間,如果時間與當前時間匹配,則執行此作業。注意 at命令是一次性定...
防止 crontab 定時任務重複執行
前言 crontab 定時任務很好使用,它的定時是很強硬的,直接跟系統時間打交道,不會去管程式本身執行是否需要時間。舉個栗子 乙個指令碼執行需要 1 小時,使用 crontab 每隔2小時執行一次,一般情況下下次執行指令碼時上次指令碼執行肯定是跑完了的 但是,假如,程式卡住了呢?下次執行時上次指令碼...