crontab簡介
crontab命令常見於Unix和類Unix的作業系統之中,用於設定周期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。 通常,crontab儲存的指令被守護進程啟用, crond常常在後台運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。
crontab用法
crontab的格式如下面:
代碼如下 |
複製代碼 |
f1 f2 f3 f4 f5 program |
其中 f1 是表示分鐘,f2 表示小時,f3 表示一個月份中的第幾日,f4 表示月份,f5 表示一個星期中的第幾天。program 表示要執行程式的路徑。
當 f1 為 * 時表示每分鐘都要執行 program,f2 為 * 時表示每小時都要執行程式,其餘類推
當 f1 為 a-b 時表示從第 a 分鐘到第 b 分鐘這段時間內要執行,f2 為 a-b 時表示從第 a 到第 b 小時都要執行,其餘類推
當 f1 為 */n 時表示每 n 分鐘個時間間隔執行一次,f2 為 */n 表示每 n 小時個時間間隔執行一次,其餘類推
當 f1 為 a, b, c,… 時表示第 a, b, c,… 分鐘要執行,f2 為 a, b, c,… 時表示第 a, b, c…個小時要執行,其餘類推
管理員登入SSH,輸入命令crontab -e編輯crontab檔案,根據上面的格式輸入並儲存。
下面說下常見的備份方法:
1. 檔案備份
用tar命令壓縮檔做備份:
代碼如下 |
複製代碼 |
#tar -zcvf backup.tar.gz dir1
|
dir1為要備份的目錄或者檔案
備份恢複的命令:
代碼如下 |
複製代碼 |
#tar -zxvf backup.tar.gz |
2. Database Backup
大多數資料庫系統有命令支援資料庫的備份和恢複. 比如mysql, 資料庫的備份命令為:
代碼如下 |
複製代碼 |
#mysqldump -host=dbhost -user=username -password=password dbname > db.dump mysql備份的恢複命令為: #mysql -host=dbhost -user=username -password=password dbname < db.dump |
3. 自動任務定時備份
先利用上面的命令寫一個備份的指令碼(比如/home/backup/backup.sh),然後用crontab -e命令來編輯定時任務,下面是第天01:30自動備份的例子
代碼如下 |
複製代碼 |
30 01 * * * /home/backup/backup.sh |
4.備份檔案的命名
可以為每天的備份檔案名上自動加入備份的時間,下面是一個樣本的指令碼:
代碼如下 |
複製代碼 |
#! /bin/bash curr=`date +%Y%m%d%H%M%S` tar czvf backup_$curr.tar.gz dir1 dir2 mysqldump -host=dbhost -user=username -password=password dbname > db_$curr.dump |