我這裡要把mysql資料庫存放目錄/var/lib/mysql下面的pw85資料庫備份到/home/mysql_data裡面,並且儲存為mysql_data20111103.tar.gz的壓縮檔案格式(20111103是指備份執行時當天的日期),然後只保留最近7天的備份,再把備份檔案通過ftp伺服器上傳到指定空間,並且在遠端ftp伺服器只保留最近7天的備份。
實現步驟:
1、建立儲存備份檔案的目錄:/home/mysql_data
cd /home
mkdir mysql_data
2、建立備份指令碼檔案:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
輸入以下內容:
#!/bin/sh
/etc/init.d/mysqld stop #執行備份前先停止mysql,防止有資料正在寫入,備份出錯
date=` date +%y%m%d ` #獲取當前日期
days=7 #days=7代表刪除7天前的備份,即只保留最近7天的備份
bk_dr=/home/mysql_data #備份檔案存放路徑
db_dr=/var/lib/mysql/pw85 #資料庫路徑
linux_user=root #系統使用者名稱
tar zcvf $bk_dr/mysql_data$date.tar.gz $db_dr #備份資料
/etc/init.d/mysqld start #備份完成後,啟動mysql
chown -r $linux_user:$linux_user $bk_dr #更改備份資料庫檔案的所有者
find $bk_dr -name "mysql_data*" -type f -mtime +$days -exec rm {} \; #刪除7天前的備份檔案(注意:{} \;中間有空格)
deldate=` date -d -7day +%y_%m_%d ` #刪除ftp伺服器空間7天前的備份
ftp -nuser admin 123456 #使用者名稱、密碼
binary #設定二進位制傳輸
cd mysqlbak #進入ftp目錄(注意:這個目錄必須真實存在)
lcd /home/mysql_data #列出本地目錄
prompt
mput mysql_data$date.tar.gz mysql_data$date.tar.gz #上傳目錄中的檔案
mdelete mysql_data$deldate.tar.gz mysql_data$deldate.tar.gz #刪除ftp空間7天前的備份
close #關閉
bye ! #退出
3、修改檔案屬性,使其可執行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab #新增計畫任務
vi /etc/crontab #在下面新增
5 23 * * * root /home/mysql_data/mysql_databak.sh #表示每天23點05分執行備份
5、重新啟動crond使設定生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #設為開機啟動
service crond start #啟動
每天你在/home/mysql_data目錄下面可以看到類似mysql_data20111103.tar.gz這樣的壓縮檔案,如果需要恢復檔案的時候,只需要把這個檔案解壓即可。
解壓縮命令:tar -zxvf mysql_data20111103.tar.gz
linux 設定計畫任務
linux 中設定計畫任務,使用的命令是 crontab 1 獲取目前的時程表 crontab l2 執行文字編輯器來設定時程表 crontab e3 基本格式 command 分 時 日 月 周 命令第1列表示分鐘1 59 每分鐘用 或者 1表示 第2列表示小時1 23 0表示0點 第3列表示日期...
Linux設定計畫任務 crontab
一 crond 是linux用來定期執行程式的服務。crond服務每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbi...
Linux計畫任務
1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...