为服务器添加定时脚本+备份数据库

首先crontab -l

查看已有的时程表,能够展示当前的定时任务有哪些

编写脚本:

#!/bin/bash

HOST:127.0.0.1

User=root

PW=mima

DATETIME=$(date +%Y_%m_%d_%H%M%S)

echo "执行日期:" + ${DATETIME}

echo "开始执行清理8小时前binlog"
mysql -u$User -p$PW <<EOF

PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 8 HOUR);//清除8小时前的bin日志
EOF
echo "执行清理8小时前binlog完成~"

Binlog是什么

binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录

默认情况下,binlog日志是二进制格式的,不能使用查看文本工具的命令(比如,cat,vi等)查看,而使用mysqlbinlog解析查看。

binlog作用:主要作用是用于数据库的主从复制及数据的增量恢复。

当有数据写入到数据库时,还会同时把更新的SQL语句写入到对应的binlog文件里,这个文件就是上文说的binlog文件。使用mysqldump备份时,只是对一段时间的数据进行全备,但是如果备份后突然发现数据库服务器故障,这个时候就要用到binlog的日志了。

备份与还原数据库命令 原文:https://www.cnblogs.com/yanghongtao/p/10897282.html

1.格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 > 文件名.sql

myslqdump -h 127.0.0.1 -p 22 -u root -p password --database  eclp_master>/data/backup/eclp_master.sql

2、备份压缩

导出的数据有可能比较大,不好备份到远程,这时候就需要进行压缩

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 | gzip > 文件名.sql.gz

例如: mysqldump -h192.168.1.100 -p 3306 -uroot -ppassword --database cmdb | gzip > /data/backup/cmdb.sql.gz

3、备份同个库多个表

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --database 数据库名 表1 表2 .... > 文件名.sql

例如 mysqldump -h192.168.1.100 -p3306 -uroot -ppassword cmdb t1 t2 > /data/backup/cmdb_t1_t2.sql

4、同时备份多个库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --databases 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump -h192.168.1.100 -uroot -ppassword --databases cmdb bbs blog > /data/backup/mutil_db.sql

5、备份实例上所有的数据库

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --all-databases > 文件名.sql

例如:mysqldump -h192.168.1.100 -p3306 -uroot -ppassword --all-databases > /data/backup/all_db.sql

6、备份数据出带删除数据库或者表的sql备份

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --add-drop-table --add-drop-database 数据库名 > 文件名.sql

例如:mysqldump -uroot -ppassword --add-drop-table --add-drop-database cmdb > /data/backup/all_db.sql

7、备份数据库结构,不备份数据

格式:mysqldump -h主机名 -P端口 -u用户名 -p密码 --no-data 数据库名1 数据库名2 数据库名3 > 文件名.sql

例如:mysqldump --no-data –databases db1 db2 cmdb > /data/backup/structure.sql

8、还原 数据库

连接到数据库中,并创建crm2这个库   要还原的库的名称
  mysql -u root -p666
  mysql> create database crm2;
退出mysql或者重新启动一个cmd窗口,然后执行
  mysql -uroot -p 库名 < mysqldump出来的那个sql文件的路径
例如:mysql -uroot -p crm2< f:\数据库备份练习\crm2.sql

这样就恢复好了,我们连接上数据库并查看里面的内容:
  mysql -u root -p666
  use crm2;
  mysql> show tables;

原文地址:https://www.cnblogs.com/songtianning/p/12614355.html

时间: 2024-10-15 20:56:09

为服务器添加定时脚本+备份数据库的相关文章

crontab中添加定时脚本不生效的原因

最近一段在检查服务器的定时脚本的时候发现了有部分服务器上的mysqldump定时脚本并没有被执行,因为在脚本中有生成日志所以就发现了问题.于是先去/var/log/cron中查看了下日志发现在相应的时候crond有执行相应的脚本,初步分析是是脚本的逻辑有问题于是就去看了下,并且执行了下发现脚本的逻辑是没有问题的,而且直接执行是没有问题的,后来又去/etc/crontab文件里去看了下 发现crontab中的环境变量不一样,但是脚本中有使用绝对路径,最后发现mysqldump中有使用allow-k

SQL Server 定时自动备份数据库

在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库,这篇文章介绍使用SQL Server 数据库代理中的作业定时自动备份数据库. 1.启动SQL Server代理服务,如下图: 绿色角标说明已启动. 2.右键“作业”,选择“新建作业”,弹出新建作业对话框,如下: 3.输入名称,所有者.类别默认不用修改,点击左侧“步骤”,在步骤面板中新建步骤,如下图: 输入步骤名(自定义)和命令. 命令代码: declare @name varchar(250) set @name='C:\My

OneinStack定时同步备份数据库/网站至七牛云存储方法

无论我们用WEB面板,还是用一键脚本安装环境建站,只要一旦我们开始用VPS.服务器,最为关键的就是服务器中的数据.因为大部分VPS.服务器商家都是无管理型主机,任何的安装和维护都需要我们自行管理.即便商家因自身问题导致服务器故障,数据丢失,其实最后损失的还是我们自己.商家给予的赔偿也仅仅是增加服务器时间或者退款,仅此而已. 所以,定期备份服务器的数据是至关重要的,在之前的文章中老蒋有提到一些手工和自动的备份方法.我们不管通过什么办法,只要是我们自己适合的都可以,有些人喜欢自己手工备份,有些人喜欢

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

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

转:windows下定时执行备份数据库

上一篇写了linux下定时任务,这一篇转发一个windows下定时备份数据库. 第一种:新建批处理文件 backup.dat,里面输入以下 net stop mysql xcopy "C:\Program Files\MySQL\MySQL Server 5.0\data\piaoyi\*.*" D:\db_backup\%date:~0,10%\ /y net start mysql 注意:批处理命令中路径里有空格的话,必须在路径上加上双引号! 关于时间参数的参考: %date:~0

Transact-SQL 示例 - 使用脚本备份数据库的示例

在常规的数据库开发与维护的过程中,常常需要对数据库进行数据备份,最入门的办法就是使用SSMS图形化界面提供的数据库备份向导一步一步操作进行备份,这种方式虽然简单快捷但是日子久了就会觉得重复且繁琐.下面将为大家奉献一个简单易用的sql脚本备份方法,也可以稍微改进一下放到定时任务内成为数据库定时备份的功能. 下面例子当中参数@enable_compression是sql2008企业版往上才提供的功能,它可以压缩数据库备份出来的备份文件. declare @database_name nvarchar

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

利用腾讯云COS云对象存储定时远程备份网站

版权声明:本文由张戈 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/942851001487125915 来源:腾云阁 https://www.qcloud.com/community 一.优点分析 内网传输:和阿里云OSS一样,腾讯云COS同样支持内网和外网文件传输,对于腾讯云服务器,使用内网传输绝对是最快.最稳定的备份方案! 免费方案:看了下腾讯云COS的定价说明,发现对于备份网站来说简直是绝佳搭档,甚至可以说是钻

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:第三方