1、分库备份 !/bin/bash image.png 2、分库分表备份 !/bin/sh image.png [ !
/bin/bash mysql_user="USER" # MySQL备份用户 mysql_password="PASSWORD" # MySQL备份用户的密码 mysql_host="localhost..." mysql_port="3306" mysql_charset="utf8" # MySQL编码 backup_db_arr=("db1" "db2") # 要备份的数据库名称,多个用空格分开隔开...backup_time=`date +%Y%m%d%H%M` # 定义备份详细时间 backup_Ymd=`date +%Y-%m-%d` # 定义备份目录中的年月日时间 backup_3ago=...`date -d '3 days ago' +%Y-%m-%d` # 3天之前的日期 backup_dir=$backup_location/$backup_Ymd # 备份文件夹全路径 welcome_msg..." # 判断有没有定义备份的数据库,如果定义则开始备份,否则退出备份 if [ "$backup_db_arr" !
/bin/bash mysql_host="localhost" mysql_user="xxxx" mysql_pwd="xxxxx" #保存备份sql的文件路径 db_dir="/data/backup...-d $db_dir];then # mkdir $db_dir #fi db_arr=$(echo 'show databases' | mysql -u$mysql_user -p$...mysql_pwd -h$mysql_host) #获得当前日期 date=$(date +%Y%m%d) ziname=$date".zip" #指定的数据库文件 thisdb="zzaly"...-p$mysql_pwd -h$mysql_host $dbname > $db_dir"/"$sqlfile fi done find $db_dir -mtime +5 -type f |...xargs rm -f #删除5天前的数据库
每天固定时间用mysqldump 备份mysql数据。 #!.../bin/bash 每天早上4点, mysql备份数据 orangleliu chmod 700 backup.sh crontab -e 0 4 * /home/erya/run/moniter/...mysql_backup.sh user="radius" password="" host="localhost" db_name="radius" backup directory base_dir...="/home/backup" backup_log="${base_dir}/mysql_backup.log" backup_path=${base_dir} file info date=$(date
完全备份指定数据库 DIR=/database/backupdir FILE_NAME=`date +%y%m%d%H` FILE_NAME=$DIR/db_$FILE_NAME.sql.gz echo...quick --routines --single-transaction --master-data=1 db_name | gzip > $FILE_NAME echo finish backup 从备份的文件恢复数据库...#db restore abc gunzip < /backupfiledir/12082917.sql.gz | mysql --user=dbuser --password=dbpwd --port...=3336 --host=10.10.20.1 --database=test 在备份时出现mysqldump: Error: Binlogging on server not active时,是因为mysql...的binlog没有启动,在mysql的my.ini文件中[mysqld]下面添加 log-bin=mysql-bin 然后重新启动mysql服务,问题就解决
: tar: 从成员名中删除开头的“/”解决方法】 【题外话】 个人观点 这种方式的最终目的就是拷贝了数据库 如果像是使用 宝塔管理界面 完全可以直接压缩备份操作的...感觉,这个技术含量不如 —— 使用 XtraBackup 进行数据热备 ---- Shell 脚本自动备份 不过,这种方式需要 MySQL 服务开启,不然无法备份数据 个人觉得有点像热备份 但是,...开启时有效 # 本行开始以下不需要修改 backup_time=`date +%Y%m%d%H%M` #定义备份详细时间 backup_Ymd=`date +%Y-%m-%d` #定义备份目录中的年月日时间.../backup.sh 我的打印信息如下: ( 可以到生成的备份文件目录中查看检验) [root@localhost percona-xtradb-cluster.conf.d]# /var/lib/mysql...MySQL 自动备份 shell 脚本】 【题外话】 个人觉得 这种方式倒是挺适合本地测试或者小型项目 最简单的操作就是: 可以进行 .sql 文件的导出操作嘛
/bin/sh bk_to="/var/mysql-backup-`date +%Y-%m-%d-%k-%M-%S |tr -d ' '`" user_name="root" user_pw="dev"...sql=" flush tables with read lock; system cp -pR /var/lib/mysql $bk_to; unlock tables; " mysql -u
mysqldump --help mysqldump 是一个常用的命令行工具,用于备份和还原 MySQL 数据库。...mysql的N种姿势 #!..." # 还原备份文件到测试数据库 mysql -u$db_user -p$db_password -h$db_host -P$db_port < $backup_file #..." # 还原备份文件到测试数据库 mysql -u$db_user -p$db_password -h$db_host -P$db_port < $backup_file #...检查数据库是否能正常运行 mysql -u$db_user -p$db_password -h$db_host -P$db_port -e "SHOW DATABASES;" } # 定义过期备份清理函数
/bin/bash # mysql 的备份脚本 # 备份原理: # 1 # 使用列举出所有的库; # 2 # 使用每个库,列举出每张表,除了指定忽略的库; # 3..."/var/backup/hostname-mysql-data/" # 删除存在大于以下天数的备份目录 deleteRootOutDays=30 #必须是完整的email地址,因为正面的命令使用到...smtpUser="qidizi@qq.com" #smtp://协议是必须的 smtpHost="smtp://smtp.qq.com:25" #密码不能包含又引号防止shell出错...email通知中,所以,只能保存到日志中,如果需要了解email的交互过程,请到日志文件中查看 appendLog "退出时间到发送email的时间:$(date +%Y-%m-%d...ssh查看此文件是否备份成功" else appendLog "检测到备份文件内容中的'Dump completed'标志字符,dump文件
下面这段Linux的Shell脚本用于每日自动备份MySQL数据库,可通过Linux的crontab每天定时执行。在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩。...需要注意的是,这段脚本仅适用数据一致性要求不高的环境。 #!.../bin/bash mysql_pwd="password" mysql_dump="/usr/local/mysql/bin/mysqldump" cur_year=$(date +"%Y") cur_month...=$(date +"%m") cur_day=$(date +"%d") dump_path="/usr/backup/mysql/$cur_year-$cur_month/$cur_day" arr_tables...-p$mysql_pwd --opt mydb $cur_table | gzip > $dump_path/$cur_table.sql.gz done 阳光部落原创,更多内容请访问 http://
/bin/sh # 备份数据库 # Mysql 用户名密码 MYSQL_USER=root MYSQL_PASS=root BACKUP_DIR=/data/backup/mysql DATA_DIR...="mysql_"$DATE".gz" # 删除一个月之前的数据库备份 find $BACKUP_DIR -name "mysql_*.gz" -type f -mtime +30 -exec rm...= 0 ]; then rm -r $DATA_DIR fi ---- 第二种方法: 可以选择设置需要备份的库,自动备份压缩,自动删除 7 天前的备份,需要使用 crontab 定时执行。.../bin/bash # 要备份的数据库名,多个数据库用空格分开 databases=(db1 db2 db3) # 备份文件要保存的目录 basepath='/root/backup/b3log.org...$basepath/*.sql 其中备份目录、MySQL 口令需要配置。
案例需求 写一个mysql binlog备份脚本,要求每天0点0分,计算机自动备份前一天的binlog日志,打包后发送给备份服务器。...脚本应用场景: 文件备份 解决问题 日常文件备份 日常数据备份 脚本思路 1、确定binlog的位置及备份时间间隔 每天 当前要备份的binlog是谁 ...刷新binlog日志,生成新的binlog用于存储备份节点后的数据 2、打包binlog日志 以年-月-日_binlog.tar.gz格式 3、生成校验码 md5sum 4、将校验码和压缩包存入到文件夹...文件夹命名 年-月-日 再次打包 5、使用scp拷贝到备份机器 6、备份机器解压收到的目录压缩包 通过校验码 教研binlog压缩包是否完整 完整 完成备份 -----发邮件给管理员,明确备份成功.../bin/bash #Description: #Author: www.zutuanxue.com #Created Time: #将mysql的binlog日志备份到备份服务器 ######
/bin/bash host="目标ip" id="用户名" pwd="密码" dbs=$(echo "show databases;" | mysql -u$id -p$pwd -h$host) nodeldb...-d $backuppath ] &&mkdir -p $backuppath cd $backuppath backupname=mysql_$(date +%Y-%m-%d) for db in $...echo $(date +%Y-%m-%d)" $localIp $host $db mysql dump failed">>mysql.log echo $(date +%...localIp backup $host $db is Failure" exit 0 fi done tar -czf $backupname.tar.gz *.sql 上一句执行的返回值...linux中0表示成功 if [ "$?"
备份目录 backup_dir=/date/mysql/backup # 邮箱地址 email_address=xxxxx@mail.qq # MySQL账号 mysql_user=root # MySQL...-u"$mysql_user" -p"$mysql_password" "$database_name" "$table_name" > "$backup_file_path" fi # 压缩备份文件...echo "备份文件路径:$compressed_backup_file_path" subject="MySQL备份成功" body="MySQL备份成功,备份文件路径:$compressed_backup_file_path...subject="MySQL备份失败" body="MySQL备份失败!".../mysql_back.sh #备份test_table_name表 ./mysql_back.sh test_table_name 觉得不错别忘了给波哥点赞,分享哦!
路 获取mysql服务器所有数据库名称,过滤掉不需要备份的数据库 通过mysqldump来for循环导出所有的数据库的sql文件 用zip加密压缩所有的sql文件 定期进行数据清理工作 shell代码...-d $back_dir ]; then mkdir -p $back_dir fi #备份的数据库数组 db_arr=$(echo "show databases...;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host) #不需要备份的单例数据库 nodeldb="test1" #当前日期...= 0 ]; then rm -r $data_dir fi 数据定期清理脚本 作用定期清理14天前的备份文件 shell代码 #!.../bin/bash - #1.参数配置 #mysql文件备份目录 backup_dir1="/backup/test1/" backup_dir2="/backup
password="111111" #mysql连接端口 port="3306" mysql_path="/usr/bin/" date=$(date +%Y-%m-%d_%H-%M-%S) del_date...backup_log="/data/backup/logs/mysqldump_backup_${date}.log" # 除了127.0.0.1以外的ip截取 /sbin/ifconfig -a|grep...for dbname in $(mysql -P$port -u$user -p$password -A -e "show databases\G"|grep Database|grep -v schema.../$date du mysql_all_databases_$date.tar.gz -sh | awk '{print "文件:" $2 ",大小:" $1}' echo "==========All...==========" >>$backup_logossutil64 cp $backup_path/mysql_all_databases_$date.tar.gz oss://bucketName
尝试写了一个 shell 脚本来备份站点,话说之前要么是懒得备份,要么是人肉备份,自从另一台vps被黑了之后,也是长记性了,虽然写的不咋地,但备份一下文件,还是绰绰有余的。 #!...------------------------------------------------------------+" echo "| Welcome to use this shell...-----------------------------------------------------+" need_compress=( '/home/wwwroot' #需要备份的目录...所在主机的主机名 DB_USERNAME="root" #mysql登录用户名 DB_PASSWORD="root" #mysql登录密码...DATABASES=( "pic" #备份的数据库名 ) for DATABASE in ${DATABASES[@]};do
一、编写Shell脚本文件 bkmysql.sh #!.../bin/bash #数据库登录信息 #如果在windows编辑器下编辑 了 ,请把格式转为unix下的格式 # :set ff=unix #mysqldump目录 BIN_DIR="/...usr/local/mysql/bin" #登录名 DB_USER="root" #登录密码 DB_PWD="123456" #主机 DB_HOST="localhost" #备份地址 BK_PATH=...u$DB_USER -p$DB_PWD -h$DB_HOST --databases $TAB_NAME > $BK_PATH/$TAB_NAME"_"$NOW_DATE.sql #删除超过60天的备份数据...,保留3个月里的 10号 20号 30号的备份数据; find $BK_PATH -mtime +60 -name '*[1-9].sql' -exec rm -rf {} \; #find $BK_PATH
-d $backuppath ] && -=mysql_$( +%Y-%m-% db -u$ -p$ -S /tmp/mysql.sock $db > [ == ] #$?...$( +%Y-%m-%d)>> -czf $backupname..gz * [ == $( +%Y-%m-%d)>> $( +%Y-%m-%d)>> -f *=mysql...将以上脚本加入定时计划crontab中即可,注意脚本的执行权限设置。
领取专属 10元无门槛券
手把手带您无忧上云