备份脚本及定时自动执行

1、首先自己建一个目录,我建的目录路径为/root/bak/bakmysql

建立目录步骤:

cd /root(切换路径到root目录下)→mkdir bak(新建名称为bak的文件夹)→cd bak(进入bak目录下)→mkdir bakmysql(新建名为bakmysql的文件夹)

2、写备份脚本

#!/bin/bash

## 定义变量
back_dir=/root/bak/bakmysql
date=$(date +%Y%m%d%H%M)

## 进入备份目录
cd $back_dir
echo "$(date): begin to backup..."

## 用MYSQLDUMP备份
mysqldump -uroot -ppassword --default-character-set=UTF8 --single-transaction --quick --master-data=2 --flush-logs --add-drop-database --triggers --routines --events --databases databases_name > $back_dir/databases_name .$date.sql

if [ $? -eq 0 ] ## 如果命令成功
then
echo "backup successed!"
## 打包病压缩备份文件
tar -zcvf jlr.$date.tar.gz jlr.$date.sql && rm -f jlr.$date.sql
## 删除3天前的备份文件
find ./jlr.*.gz -mtime +3 -exec rm -f {} \;
else ## 如果备份失败
echo "backup failed!"
fi
echo "$(date): end backup."

3、设置该脚本为自动定时执行

将路径切换到/etc下面→编辑crontab文件(vim crontab)

最后一句为刚刚新增加的

然后保存退出

4、当以上工作都完成后执行整个定时备份的脚本也就完成了,

最后要说的就是,以上仅仅是一个简单的常规步骤,当然也还可以后其他的一些方法。比如在编辑crontab文件的时候,也可以直接执行crontab -e命令然后把最后那一行追加到文件中也可以。

我本人在做个定时脚本的时候也不是像上面说的那样简单,出现过各种问题,所以在这里将一些需要注意的地方列出来警示自己,也可以给各位提供一个参考

在做这个工作的时候:首先,你要确定自己的解决方案,需要用到哪些技术或者工具;其次,你要对自己用的技术和工具有一定的认识和了解

比如说上面的脚本我用到了mysqldump来备份数据库,用到了linux的crontab来实现定时,当时用的客户端连接工具是Xshell

这个时候你就需要对mysqldump的一些命令和参数有一定的了解了,比如说上面脚本中的

mysqldump -uroot -ppassword --default-character-set=UTF8 --single-transaction --quick --master-data=2 --flush-logs --add-drop-database --triggers --routines --events --databases databases_name > $back_dir/databases_name .$date.sql

这其中有许多参数,可以根据自己的实际需要去设置。比如我要备份的不是一个数据库,而是这个服务器上的所有数据库,这个时候就可以将--databases databases_name改为--all-databases。还有一点就是在代码中有一个 --flush-logs主要是关闭当前的二进制日志文件并创建一个新文件,新的二进制日志文件的名字在当前的二进制文件的编号上加1。当要使用该功能是需要修改mysql配置文件my.cnf。将“log_bin                 = /var/log/mysql/mysql-bin.log”的注释去掉,如果远my.cnf中没有这一句的话就在文件中添加上,如图所示:

鉴于本人目前水平,只能理解到这么多了,所以,以上所述均做参考,具体应用的时候,结合自己的实际情况而定

时间: 2024-10-18 07:02:49

备份脚本及定时自动执行的相关文章

转 Windows 7设置定时自动执行任务方法

在使用电脑的时候可能会遇到一些需要无人值守让电脑自行执行任务后定时关机的情形,在Win7系统中,我们可以使用"任务计划"设置功能结合 shutdown命令灵活设置任务计划,让Win7系统实现定时自动执行,并且可以定制日常任务,让Win7按指定时间频率自动执行. 我们在Win7系统中点击开始按钮,依次选择打开"所有程序-附件-系统工具",找到"任务计划程序"即可打开Win7系统的任务计划设置面板.也可以点击Win7开始按钮,在多功能搜索框中输入&q

MYSQL 定时自动执行EVENT

MySQL从5.1开始支持EVENT功能,类似Oracle和MSSQL的定时任务job功能.有了这个功能之后我们就可以让MySQL自动的执行存储过程来实现数据汇总等功能了,不用像以前哪样手动操作完成了.下面我们来测试下,在MYSQL中如何自动执行指定存储过程,实现相关功能. 一.创建测试表CREATE TABLE EVENT_table(id INT auto_increment PRIMARY KEY NOT NULL,conent VARCHAR(80))ENGINE=INNODB DEFA

php定时自动执行 需启动第一次

1 2 3 4 5 6 7 8 9 10 11 12 <? ignore_user_abort(); //即使Client断开(如关掉浏览器),PHP脚本也可以继续执行. set_time_limit(0); // 执行时间为无限制,php默认的执行时间是30秒,通过set_time_limit(0)可以让程序无限制的执行下去 $interval=60*5; // 每隔5分钟运行 do{ $fp = fopen("test.txt","a"); fwrite(

mysql备份脚本,一天执行一次全量备份,三次增量备份

线上一个小业务的mysql备份 全量备份 #!/bin/bash #crete by hexm at 2016-10-02 #scripte name : full_backup.sh #descriptioni : mysql full backup. oneday at a time. #time info date=`date +%Y%m%d` #time_now1=`date +%Y%m%d-%H:%M:%S` #dir info BACKUP_DIR="/app/dbbackup/fu

2015-12-02 定时自动执行存储过程

如何让powershell脚本可以在计划任务中自动执行

今天在测试PS脚本的时候,,突然想到,让脚本每天定时自动执行,因为以前有做过Bat的经验,就想,这个还不简单,直接在windows的计划任务中创建任务不就可以了吗?于是就动手测试了,结果发现悲剧了,PS1后缀的脚本无法直接在计划任务中执行好吧,只能找度娘出马了,于是找了这种方法,自己记录一下1:我这边在我的电脑上写了一个简单的获取服务的脚本,之后保存为services.ps1这样的名称        get-service  | where{$_.status -eq "running"

mysql自动备份脚本及异地定时FTP

分享个自己写的mysql自动备份脚本.定时执行设置及windows自动FTP,请大家指教. 前提环境:mysql数据库服务器开启vsftpd,并配置合适帐号以便能被内网存储服务器FTP 第一步:编写mysql自动执行脚本 #!/bin/sh # mysql_db_backup.sh: backup mysql databases. # # Last updated: Wed Nov  9 07:01:01 CST 2011 # ----------------------------------

使用bat批处理文件定时自动备份sqlserver数据库

一.创建一个sql文件,在里面写入以下代码: USE MasterGOdeclare @str varchar(100)set @str='D:\sqlserver14backup\CDB\'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',''),':','')+'.bak'BACKUP DATABASE [CDB] TO [email protected]WITH RETAINDAYS=15,NOFORMAT

windows 10 如何设定计划任务自动执行 python 脚本?

我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行.那么,windows 10 操作系统如何定时自动执行 python 脚本? 我的设备是 windows 10操作系统,自带的"计划任务"可以满足我的需求,具体操作步骤,整理如下. 步骤1:打开 "计算机管理" 界面 点击电脑左下角的windows图标,或者键盘的wind