linux下備份mysql數據庫,並ftp到遠程linux服務器上

一、檢查FTP服務是否安裝
1.架設mysql數據庫裝在172.22.1.77上,如何安裝mysql略,簡稱爲77。
2.作爲備份機IP爲172.22.1.150上,簡稱爲150;
3.爲150按照ftp命令,首先XSHELL遠程連接到150上,確認ftp服務是否安裝。
service vsftpd status
這裏寫圖片描述
顯示vsftpd已停,說明服務停止,輸入:service vsftpd start可啓動服務。
如果顯示:-bash vsftpd :command not find,說明服務未安裝。
二、安裝FTP服務
1.安裝使用yum,如果linux上沒有安裝yum工具,前先安裝yum,此處不贅述。
2.輸入命令:yum install vsftpd ,如圖所示安裝。在is this ok [y/N] 後輸入y
3.安裝完畢後先創建一個ftp專用賬號,該用戶的登陸文件夾將作爲以後遠程備份的sql文件位置。
在此我們創建一個 /opt/user 這個文件夾作爲上傳路徑。以及一個user用戶,密碼也爲user
輸入命令:useradd –d /opt/user user
查看確認一下目錄所有者權限,user是否可以寫入:
在/opt目錄下輸入命令:ls –l
user目錄所有者爲user,權限爲rwx
修改用戶名密碼
輸入:passwd user
三、測試FTP服務
1.打開cmd命令,輸入ftp命令,
open 172.22.1.150
輸入賬號密碼user,成功登陸。表明ftp服務可用。
這裏寫圖片描述
四、編寫sh腳本
在77上/home下新建mysql_data作爲備份文件存放路徑,並在該目錄下新建bak.sh,拷貝以下內容至該文件中。
修改完成後,保存並推出。修改文件可執行權限,
chmod +x bak.sh
測試該腳本是否運行正常:
sh bak.sh
這裏請忽略語法和格式錯誤,該錯誤不影響備份。
這裏寫圖片描述
到150目錄/opt/user和77目錄/home/mysql_data下可以看到2015_12_31_15_14.sql的文件,遠程備份成功。
這裏寫圖片描述
五、設置定時任務
shell到77上,輸入crontab -l查看用戶的定時任務,
輸入crontab -e 編輯某個用戶的cron服務
輸入:
30 01 * * * /home/mysql_data/bak.sh
設置在凌晨1:30分運行bak腳本;
最後輸入:/etc/init.d/crond restart
重啓crond,讓其生效。
六、還原mysql備份
xshell到150上,輸入:mysql -uroot -p123456登陸到mysql;
這裏寫圖片描述
輸入命令”show databases;”,回車,看看有些什麼數據庫;切換到要還原的數據庫,輸入”use funing_wms;”,回車;導入數據,
輸入”source /opt/user/fn_wms_bak_2015_12_31_16_05.sql;”,回車,開始導入,再次出現”mysql>”並且沒有提示錯誤即還原成功。

附sh腳本:

#!/bin/sh
DUMP=/usr/bin/mysqldump    #mysqldump備份文件執行路徑
OUT_DIR=/home/mysql_data   #備份存放路徑
LINUX_USER=root            #系統用戶名
DB_NAME=funing_wms               #要備份的數據庫名字
DB_USER=root               #數據庫賬號 注意:非root用戶要用備份參數 --skip-lock-tables,否則可能會報錯
DB_PASS=123456            #數據庫密碼
DAYS=7                     #DAYS=7代表刪除7天前的備份,即只保留最近7天的備份
cd $OUT_DIR                #進入備份存放目錄
DATE=`date +%Y_%m_%d_%H_%M`      #獲取當前系統時間
OUT_SQL="$DATE.sql"        #備份數據庫的文件名
TAR_SQL="fn_wms_bak_$DATE.tar.gz" #最終保存的數據庫備份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #備份
chown  $LINUX_USER:$LINUX_USER $OUT_DIR/$OUT_SQL  #更改備份數據庫文件的所有者
find $OUT_DIR -name "fn_wms_bak_*" -type f -mtime +$DAYS -exec rm {} \;  #刪除7天前的備份文件
ftp -n<<!
open 172.22.1.150
type binary
user user user
prompt
put $OUT_SQL fn_wms_bak_$OUT_SQL
close
bye
!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章