標籤:使用者名稱 資料庫 linux mysql 密碼
Linux下定時任務實現mysql自動備份並上傳遠程ftp
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
DUMP=/usr/bin/mysqldump#mysqldump備份檔案執行路徑
OUT_DIR=/home/mysql_data#備份存放路徑
LINUX_USER=root#系統使用者名稱
DB_NAME=pw85#要備份的資料庫名字
DB_USER=root#資料庫帳號 注意:非root使用者要用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456#資料庫密碼
DAYS=7#DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
cd$OUT_DIR #進入備份存放目錄
DATE=‘date +%Y_%m_%d‘#擷取當前系統時間
OUT_SQL="$DATE.sql"#備份資料庫的檔案名稱
TAR_SQL="mysqldata_bak_$DATE.tar.gz"#最終儲存的Database Backup檔案名稱
$DUMP-u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R--skip-lock-tables> $OUT_SQL #備份
tar-czf $TAR_SQL ./$OUT_SQL #壓縮為.tar.gz格式
rm$OUT_SQL #刪除.sql格式的備份檔案
chown$LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改備份資料庫檔案的所有者
find$OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \;#刪除7天前的備份檔案(注意:{} \;中間有空格)
deldate=’date -d -7day +%Y_%m_%d’ #刪除ftp伺服器空間7天前的備份
ftp-n<<!
open192.168.1.1 21 #開啟ftp伺服器。21為ftp連接埠
useradmin 123456 #使用者名稱、密碼
binary#設定二進位傳輸
cdmysqlbak #進入ftp目錄(注意:這個目錄必須真實存在)
lcd/home/mysql_data #列出本地目錄
prompt
mputmysqldata_bak_$date.tar.gz mysqldata_bak_$date.tar.gz #上傳目錄中的檔案
mdeletemysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #刪除ftp空間7天前的備份
close#關閉
bye! #退出
3、修改檔案屬性,使其可執行
chmod +x /home/mysql_data/mysql_databak.sh
4、修改/etc/crontab #添加計劃任務
vi/etc/crontab #在下面添加
30 1 * * * root /home/mysql_data/mysql_databak.sh #表示每天淩晨1點30執行備份
5、重新啟動crond使設定生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #設為開機啟動
service crond start #啟動
本文出自 “7385764” 部落格,轉載請與作者聯絡!
Linux下定時任務實現mysql自動備份並上傳遠程ftp