linux 备份mysql并上传_linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)...
#========================start shell 腳本============================
#!/bin/bash
#定義備份數(shù)據(jù)庫時使用的用戶名和密碼
db_user="root"
db_passwd="111111"
#定義FTP服務器地址、用戶名、密碼、目錄
ftp_url=113.108.8.80
ftp_user=ftpuser
ftp_passwd=111111
ftp_dir=/mysql_backup/xxxx
#數(shù)據(jù)庫備份的路徑
backup_dir=/home/mysqlbak
#當前日期
time=` date +%Y%m%d `
#得到所有數(shù)據(jù)庫名的sql
sql="show databases"
#得到所有數(shù)據(jù)庫名
declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`
#循環(huán)數(shù)據(jù)庫名列表,執(zhí)行備份
for db_name in $databases
do
if [ $db_name != "Database" ] && [ $db_name != "information_schema" ] && [ $db_name != "mysql" ] && [ $db_name != "test" ]; then
echo " the item is $db_name"
/usr/bin/mysqldump -u$db_user -p$db_passwd -R -E -B $db_name > "$backup_dir/$db_name"_"$time.sql"
fi
done
#刪除備份目錄下早于七天前的文件
find $backup_dir -name '*.sql' -type f -mtime +7 -exec rm {} \;
#壓縮文件
cd $backup_dir
zip -m db_$time.zip *_$time.sql
#上傳文件
ftp -d -n <
open "$ftp_url"
user "$ftp_user" "$ftp_passwd"
passive
binary
cd $ftp_dir
lcd $backup_dir
prompt
put db_$time.zip
close
bye
!
#====================end shell 腳本======================
passive:開關被動模式,,這里上傳需要用主動模式,加上控制開關被動模式? 看情況加不加? ? ?如果上傳使用被動模式 則Entering Passive Mode報錯
binary:二進制傳輸
cd: 服務端cd? lcd:客戶端cd? put上傳單個 mput上傳多個 get下載單個 mget下載多個prompt多個提示
#========================start shell 腳本============================#!/bin/bash
#定義備份數(shù)據(jù)庫時使用的用戶名和密碼db_user="root"db_passwd="111111"
#定義FTP服務器地址、用戶名、密碼、目錄ftp_url=113.108.8.80ftp_user=ftpuserftp_passwd=111111ftp_dir=/mysql_backup/113.108.8.82
#數(shù)據(jù)庫備份的路徑backup_dir=/home/mysqlbak
#當前日期time=` date +%Y%m%d `
#得到所有數(shù)據(jù)庫名的sqlsql="show databases"
#得到所有數(shù)據(jù)庫名declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`
#循環(huán)數(shù)據(jù)庫名列表,執(zhí)行備份for db_name in $databasesdoif [ $db_name != "Database" ] && [ $db_name != "information_schema" ] && [ $db_name != "mysql" ] && [ $db_name != "test" ]; thenecho " the item is $db_name"? ? ? ? /usr/bin/mysqldump -u$db_user -p$db_passwd -R -E -B $db_name > "$backup_dir/$db_name"_"$time.sql"fidone
#刪除備份目錄下早于七天前的文件find $backup_dir -name '*.sql' -type f -mtime +7 -exec rm {} \;
#壓縮文件cd $backup_dirzip -m db_$time.zip *_$time.sql
#上傳文件ftp -d -n <
#====================end shell 腳本======================
安裝crontab:
yum?install?crontabs
crontab -e 打開執(zhí)行計劃
0 10 * * * /home/baksh/bakupmysql.sh? 每天10點執(zhí)行這個腳本
minute???hour???day???month???week???command
其中:
minute:?表示分鐘,可以是從0到59之間的任何整數(shù)。
hour:表示小時,可以是從0到23之間的任何整數(shù)。
day:表示日期,可以是從1到31之間的任何整數(shù)。
month:表示月份,可以是從1到12之間的任何整數(shù)。
week:表示星期幾,可以是從0到7之間的任何整數(shù),這里的0或7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件。
sudo chmod 777 ××× (每個人都有讀和寫以及執(zhí)行的權限)
service crond reload
服務操作說明:
/sbin/service?crond?start?//啟動服務
/sbin/service?crond?stop?//關閉服務
/sbin/service?crond?restart?//重啟服務
/sbin/service?crond?reload?//重新載入配置
總結
以上是生活随笔為你收集整理的linux 备份mysql并上传_linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java loadonstartup_j
- 下一篇: connectionstring mys