登录后台

页面导航

本文编写于 500 天前,最后修改于 498 天前,其中某些信息可能已经过时。

mysql定时备份到异地服务器

1、做好scp免密传输,A要备份到B,A要将RSA_PUB公钥传给B的/root/.ssh/,并重命名为authorized_keys

3、创建mysql用户,并授权,使用该用户进行备份。

2、创建备份脚本

#备份文件后缀时间
time=_` date +%Y_%m_%d_%H_%M_%S `
#需要备份的数据库名称
db_name=ping
#mysql 用户名
db_user=backup
#mysql 密码
db_pass=Sinochem1
# 远程备份服务器 文件存放路径
RemoteBackDir=/mysql_backup
# 远程备份服务器 登录账户
RemoteUser=root
# 远程备份服务器 IP地址
RemoteIP=172.102.251.24
#本地备份路径
localBackDir=$backupdir/$time.sql.gz
#mysqldump命令使用绝对路径
mysqldump -u $db_user -p$db_pass $db_name | gzip > $localBackDir
scp $localBackDir $RemoteUser@$RemoteIP:$RemoteBackDir
#删除30天之前的备份文件
find $backupdir -name “*.sql.gz” -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1

3、创建定时任务,每天凌晨一点运行

crontab -e
00 01 * * * /home/mysql_backup/backup.sh

文件定时打包并备份到异地

1、创建备份目录/home/备份文件

2、创建备份脚本

#!/bin/sh
zip -r /home/beifenwenjian/$(date -d "today" +"%Y%m%d_%H%M%S").zip /usr/local/web
find /home/beifenwenjian/ "*.zip" -type f -mtime +10 -exec rm {} \; > /dev/null 2>&1
scp /home/beifenwenjian/* root@172.102.251.24:/web_backup
rm -f /home/beifenwenjian/*
  • 查找小于10天的备份文件,并删除:
  1. /usr/local/deploy/caseiBackups/ "*.zip" -type f -mtime +10 -exec rm {} ; > /dev/null 2>&1

/usr/local/deploy/caseiBackups/ : 备份的文件所在目录。
-type f:表示查找普通类型的文件,f表示普通文件。
-mtime +5 按照文件的更改时间来查找文件,+5表示文件更改时间距现在5天以前;如果是 -mmin +5 表示文件更改时间距现在5分钟以前。
-exec rm {} ; 表示执行一段shell命令,exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个,最后是一个分号。
/dev/null 2>&1 把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面;其中的& 表示让该命令在后台执行。*