linux 計畫任務 crontab
基本格式:
* * * * * command
分 時 日 月 周 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要執行的命令
crontab檔案的一些例子:
30 21 * * * /opt/lampp/lampp restart
#上面的例子表示每晚的21:30重啟lampp。
45 4 1,10,22 * * /opt/lampp/lampp restart
#上面的例子表示每月1、10、22日的4 : 45重啟lampp。
10 1 * * 6,0 /opt/lampp/lampp restart
#上面的例子表示每週
六、週日的1 : 10重啟lampp。
0,30 18-23 * * * /opt/lampp/lampp restart
#上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟lampp。
0 23 * * 6 /opt/lampp/lampp restart
#上面的例子表示每星期六的11 : 00 pm重啟lampp。
* */1 * * * /opt/lampp/lampp restart
#每一小時重啟lampp
* 23-7/1 * * * /opt/lampp/lampp restart
#晚上11點到早上7點之間,每隔一小時重啟lampp
0 11 4 * mon-wed /opt/lampp/lampp restart
#每月的4號與每週一到週三的11點重啟lampp
0 4 1 jan * /opt/lampp/lampp restart
#一月一號的4點重啟lampp
crontab 命令引數:
crontab -e : 新增/修改時程表
crontab -r : 刪除目前的時程表
crontab -l : 列出目前的時程表
crontab file [-u user]-用指定的檔案替代目前的crontab。
例項1:linux下svn客戶端版本庫定時更新
現有兩台機器
一台 windows : 192.168.1.125
一台 linux : 192.168.1.132 (ubuntu 10.04 lts / root)
windows 上執行有 svn-server (svn:
linux 上安裝有 svn-client , 現在想定時(每一小時)更新一次 linux 上的版本庫.
1, 先將 svn-server 上的版本庫檢出到 linux 機器的指定目錄 (/root/backup/winsvn/)
cd/root/
mkdirbackup
cdbackup/
mkdirwinsvn
cdwinsvn/
/usr/bin/svn checkout svn:
2, 設定 crontab
crontab -e
#將 crontab 中的內容修改如下
#第一條是定時同步時鐘的,
#第二條才是我們要的, 表示每小時的第50分鐘執行一次 svn 更新命令
# 注意:
# lang=en_hk.utf-8
# 否則會造成手動執行 update 命令成功,但放到 crontab 中更新不成功
lang=en_hk.utf-8
# m h dom mon dow command
19 * * * * /usr/sbin/ntpdate ntp.api.bz
50 * * * * /usr/bin/svn update /root/backup/winsvn --username kuco --password kucopwd --no-auth-cache > /root/backup/winsvn_backup.log
p.s. 特別注意 lang=en_hk.utf-8 很重要, 在這個問題鬱悶了很久. 可以通過 export 命令顯示系統環境編碼.
還有幾點零星的知識點也一併記錄在這裡吧
1, svn客戶端檢出的時候把使用者名稱和密碼都儲存了,如果想再切換成其它的使用者來檢出該怎麼操作?
# linux 下
rm -rf~/.subversion/auth
2, find 命令
# 在當前目錄下查詢檔案名為 rsyslog.conf 的檔案
find. -name "rsyslog.conf"
# find 命令詳細介紹
# 3, 開啟 crontab 日誌功能
# 預設情況下 ubuntu 執行 crontab 是沒有記錄日誌的, 我們要手動開啟
vim/etc/rsyslog.conf
# 發現 rsyslog.conf 呼叫了 /etc/rsyslog.d/*.conf
ls/etc/rsyslog.d/*.conf
# 先備份
cp/etc/rsyslog.d/50-default.conf /etc/rsyslog.d/50-default.conf.bak
# 再編輯
vim/etc/rsyslog.d/50-default.conf
# 將下面這一行前面的 # 去掉
#cron.* /var/log/cron.log
# 重啟日誌服務
cd/etc/init.d/
service rsyslog restart
# 這樣 crontab 執行的日誌就會記錄在
/var/log/cron.log
crontab計畫任務
背景 公司要求刪除2天之前的備份檔案及所有日誌,免得把硬碟給整爆了,上伺服器看了下,居然都有3個月的備份沒有清理了 su root citics 200 cd du sh cd dbbak du sh cd rman du sh cd data du sh 125執行程式 vim delbkp.sh...
crontab計畫任務
編輯crontab檔案 crontab e 檢視crontab日誌 tail 100f var log cron 基本格式 command 分 時 日 月 周 命令 第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期1 31 第4列表示月份1 12 第...
crontab計畫任務
crontab是linux下定製計畫任務的工具,其使用方便,是居家旅行 定時搞事的必備神器。本篇記錄下crontab使用方法,以及注意坑點。command一般寫計畫任務,都是執行crontab e然後寫入計畫任務,儲存退出即可。sleep 10 每10s執行一次。30 21 usr local et...