shell 备份mysql库到远程_linux备份数据库并上传至远程服务器(定时执行shell进行ftp上传)(示例代码)...

#========================start shell 脚本============================

#!/bin/bash

#定义备份数据库时使用的用户名和密码

db_user="root"

db_passwd="111111"

#定义FTP服务器地址、用户名、密码、目录

ftp_url=113.108.8.80

ftp_user=ftpuser

ftp_passwd=111111

ftp_dir=/mysql_backup/xxxx

#数据库备份的路径

backup_dir=/home/mysqlbak

#当前日期

time=` date +%Y%m%d `

#得到所有数据库名的sql

sql="show databases"

#得到所有数据库名

declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`

#循环数据库名列表,执行备份

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

#定义备份数据库时使用的用户名和密码db_user="root"db_passwd="111111"

#定义FTP服务器地址、用户名、密码、目录ftp_url=113.108.8.80ftp_user=ftpuserftp_passwd=111111ftp_dir=/mysql_backup/113.108.8.82

#数据库备份的路径backup_dir=/home/mysqlbak

#当前日期time=` date +%Y%m%d `

#得到所有数据库名的sqlsql="show databases"

#得到所有数据库名declare databases=`mysql -u${db_user} -p${db_passwd} -e "${sql}"`

#循环数据库名列表,执行备份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 脚本======================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值