shell备份数据库

/bin/bash

BAKPATH=/opt/mysql

MYUSER=root

MYPASSWD=123456

SOCKET=/data/3308/mysql.sock

MYCMD="mysql -u$MYUSER -p$MYPASSWD -S $SOCKET"

MYSQLDUMP=mysqldump -u$MYUSER -P$MYPASSWD -S $SOCKET  -x -F -R

[ ! -d $BAKPATH ] && mkdir -p $BAKPATH

DBLIST=`$MYCMD -e "show databases; | sed 1d" |egrep -Evi "mysql|info" `

for dbname in DBLIST

do

TLIST=`$MYCMD -e "show tables from $dbname;" | sed 1d`

for tname in $TLIST

do

mkdir -p $BAKPATH/$dbname

$MYSQLDUMP $dbname $tname |gzip >/$BAKPATH/$dbname/${tname}_$(date +%F).sql.gz

done

$MYSQLDUMP  $dbname |gzip > /$BAKPATH/${dbname}_$()$(date +%F).sql.gz

done

时间: 2024-08-27 04:34:38

shell备份数据库的相关文章

用shell脚本自动化备份数据库

防伪码:防止误删系统数据库,定时备份你我更安心! 使用shell脚本自动化备份数据库 一.简介 系统数据库如图所示(以MySQL5.5为例) 1.information_schema:信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息.在information_schema中,有数个只读表.它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件. 2.mysql:MySQL的的核心数据库,类似于SQLServer中的master表,主要负责存储数据库的用户.权限

常用的shell(备份数据库、备份网站、切割访问日志)

备份网站程序 #!/bin/bash /bin/tar czf /mnt/backup_website/web_$(date +%Y%m%d_%H%M%S).gz.tar /mnt/wwwroot/web cd /mnt/backup_website find . -mtime +1 -name "*20[1-9][3-9]*" | xargs rm -f exit 0 备份数据库 #!/bin/bash /bin/tar czf /mnt/backup_website/newjiag

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/xx

[Shell 脚本] 备份数据库文件至OSS服务(纯shell脚本无sdk)

背景: 凡事使用服务器搭建的网站就需要定时备份网站数据,常见的方法是打包网站目录,然后备份到FTP服务器上等.也有通过OSS SDK把备份的网站文件上传到OSS服务器上,但是通过SDK来实现,需要一定的技术能力,而且相对比较复杂,需要使用更多的文件,而这篇文章是通过shell脚本,并不是通过OSS SDK来上传文件,简单方便. 步骤: 1.首先需要在阿里云注册账号,开通OSS服务,创建bucket,Bucket设置为私有读写. 2.将下面的脚本文件复制下来,保存为 .sh 脚本文件(例如:bac

Shell脚本备份数据库(多库)

#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbinexport PATH#数据库用户名dbuser='root'#数据库用密码dbpasswd='password'#需要备份的数据库,多个数据库用空格分开dbname=('dbname1' 'dbname2 'dbname3' 'dbname4' 'dbname5')#备份时间backtime=`date +%Y%m%d%H%M%S`#mysql

nodejs 定时调用shell脚本来备份数据库和日志文件并发送到邮箱

安装mailx,靠它来发送邮件 yum install mailx 编辑配置文件 vim /etc/mail.rc #添加如下内容 set [email protected] set smtp=smtp.163.com set [email protected] set smtp-auth-password=xxx set smtp-auth=login ---说明 from:对方收到邮件时显示的发件人 smtp:指定第三方发邮件的smtp服务器地址 set smtp-auth-user:第三方

MysqL5.7在使用mysqldump命令备份数据库报错:mysqldump: [Warning] Using a password on the command line interface can be insecure.

在阿里云服务器增加一个shell脚本定时备份数据库脚本执行任务时,测试性的执行了备份命令,如下 [[email protected] mysql_bak]# /usr/local/mysql/bin/mysqldump -uroot -pmyServerPwd# dateabase > /data/mysql_bak/bak_test.sql 在执行完了命令本该在指定的目录下出现bak_test.sql文件,然而并没有生成,报了一行错误.这个问题应该是在MySQL5.6+版本的时候就有出现,可能

SqlServer定时备份数据库和定时杀死数据库死锁解决

PS:Sqlserver 2008 R2,windows 8 64位 1.备份数据库 因为要备份,我们就要用到Sqlserver的代理,默认数据库的代理是不开启的.需要我们手动开启的. 执行备份数据库脚本,现在将脚本公布,其实将这一段代码中需要保存的文件路径和数据库名称替换一下就可以实现备份了.但是还没有达到定时备份的目的 ? 1 2 3 4 5 6 7 8 9 10 11 --自动备份并保存最近5天的SQL数据库作业脚本 宋彪 20130310 DECLARE @filename VARCHA

System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部

SQL还原时出现下面的错误,System.Data.SqlClient.SqlError: 尚未备份数据库 "***" 的日志尾部.如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志.请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容. (Microsoft.SqlServer.Smo)原因分析:    这是因为在线还原的数据库在最后备份后又产生了新的日志,所以按照默认设