1. 程式人生 > >CentOS安裝crontab 定時備份文件夾

CentOS安裝crontab 定時備份文件夾

-c mon 直接 配置 精確 bin minute pla chkconfig

一、 編寫腳本
編寫一個腳本文件,使腳本可以執行備份命令。
例如,將文件目錄 /home/backups/balalala 備份到/home目錄下,並壓縮。
1. 創建腳本
命令格式: touch 路徑/文件名.sh
例如:
輸入命令:touch /home/backup.sh

技術分享圖片

2. 寫入命令
首先進入腳本:vi命令
vi /home/backup.sh
在腳本內寫入:
#! /bin/sh
mkdir /home/plantask/temp
#創建一個臨時文件 保存備份的路徑
cp -r /www/xilan /home/plantask/temp
#數據存在plantask目錄下,備份到temp目錄下,所以先將數據拷過來

tar -zcPvf /www/backups/xilan$(date +%Y%m%d%H%M%S).tar.gz /home/plantask/temp -->時間精確到毫秒
#將數據所在文件夾plantask打包
rm -rf /home/plantask/temp

find ./ -mtime +30 -name "*.tar.gz" -exec rm -rf {} \;
#刪除改文件夾下超過30天的文件

技術分享圖片


3. 執行腳本文件
直接手動執行腳本文件。
命令格式:sh 路徑/文件名.sh
例如:sh /home/backup.sh
二、 設置定時執行本腳本。
例如:設置腳本每7天執行一次。
1. 安裝crond

如果沒有安裝crond服務就先裝上服務。
檢查服務狀態:service crond status
2. 修改crontab內容
輸入命令:crontab –e
進入後繼續輸入命令:0 0 /7 * sh /home/backup.sh ---->一定要加上sh命令

技術分享圖片


設置為每7天執行一次腳本文件
然後,保存退出:wq
0 */1 * * * sh /home/plantask/backup.sh #每小時執行一次
*/1 * * * * sh /home/plantask/backup.sh #每分鐘執行一次 用於調試

sh腳本前面五個字段分別表示分鐘(0-59)、小時(0-23)、日(1-31)、月(0-12)、星期幾(0-6)後面的為腳本所在目錄 --->一定要加上sh命令

3. 重新啟動crond服務
輸入命令:service crond restart
至此配置完成!

**************************************************************************************************

安裝crontab:
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
說明:
vixie-cron軟件包是cron的主程序;
crontabs軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
//+++++++++++++++++++++++++++++++++++
cron 是linux的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
service crond start //啟動服務
service crond stop //關閉服務
service crond restart //重啟服務
service crond reload //重新載入配置
查看crontab服務狀態:service crond status
手動啟動crontab服務:service crond start
查看crontab服務是否已設置為開機啟動,執行命令:ntsysv
加入開機自動啟動:
chkconfig --level 35 crond on

*************************************************************************

1,crontab命令

功能說明:設置計時器。

語  法:crontab [-u <用戶名稱>][配置文件] 或 crontab [-u <用戶名稱>][-elr]

補充說明:cron是一個常駐服務,它提供計時器的功能,讓用戶在特定的時間得以執行預設的指令或程序。只要用戶會編輯計時器的配置文件,就可以使用計時器的功能。其配置文件格式如下:
Minute Hour Day Month DayOFWeek Command

參  數:
 -e  編輯該用戶的計時器設置。
 -l  列出該用戶的計時器設置。
 -r  刪除該用戶的計時器設置。
 -u<用戶名稱>  指定要設定計時器的用戶名稱。

2,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 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重啟apache。

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重啟apache。

10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重啟apache。

0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之間每隔30分鐘重啟apache。

0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重啟apache。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小時重啟apache

* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11點到早上7點之間,每隔一小時重啟apache

0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4號與每周一到周三的11點重啟apache

0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一號的4點重啟apache

*/30 * * * * /usr/sbin/ntpdate 210.72.145.44
每半小時同步一下時間

crontab命令主要有3個參數:

  -e :編輯用戶的crontab。

  -l :列出用戶的crontab的內容。

  -r :刪除用戶的crontab的內容。

  執行crontab -e,將自動打開編輯器,你可以編輯自己的crontab文件,語法和 /etc/crontab 文件一樣,不同的只是,不必再指出執行的用戶,編輯後保存即可。

  crontab -l用來查看自己的crontab文件內能,crontab -r刪除自己的crontab。

CentOS安裝crontab 定時備份文件夾