定时进行服务器数据备份

一、写对应数据库的备份脚本
我自己需要备份的是,MongoDB和mysql数据库的。
1、MongoDB

#!/bin/bash

today_date=`date "+%Y%m%d"`
# 创建备份当天日期文件夹
mkdir $today_date
# 导出test库
/opt/mongodb/bin/mongodump -h 127.0.0.1 --port 27017 -u root -p root -d test -o /opt/mongo_back/$today_date/ --authenticationDatabase admin

# 赋权,方便rsync进行拉取
chown -R root /opt/mongo_back

# 删除10天前的文件
find /opt/mongo_back/ -mtime +10 -exec rm -rf {} \;

/opt/mongodb/bin/mongodump 为你自己安装数据库的路径
127.xxxx 本机的话就不用改了
如果不是默认端口得加端口
用户名
密码
库名

2.mysql

#!/bin/bash

today_date=`date "+%Y%m%d"`

# 创建备份当天日期文件夹
mkdir $today_date

mysqldump -uroot -p密码 inner_tube > /home/dbback/$today_date/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

# 删除10天前的文件
find /home/dbback/ -mtime +10 -exec rm -rf {} \;

这里mysql5.6大概率会报:Warning: Using a password on the command line interface can be insecure,原因是mysql加强了安全检查,得去my.cof里设置下账号密码,然后重启下即可

二、备份语句写好后,就需要定时执行脚本文件了,我选择的是linux自带的crontab

1、service crond status 确认定时任务是否开启。如果没有这个的话,就用yun安装下。
2、crontab -e 编辑某个用户的cron服务
比如我的:0 1 * * * /opt/mongo_back/./mongo_back.sh 设置每天凌晨一点执行一次脚本
3、crontab -l 列出某个用户cron服务的详细内容
4、service crond reload //重新载入配置

service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置

crontab -r 删除某个用户的cron服务(慎用)

排错方法

1、tail /var/log/cron看定时任务执行日志,查看哪里报错。
2、我遇到的是:postfix/sendmail[8087]: fatal: parameter inet_interfaces: no local interface found for ::1这是什么错误了(参数inet_interfaces:未找到::1的本地接口),又经过一番查找,终于找到了解决办法
将/etc/postfix/main.cf文件中inet_interfaces值改为all(当Cron执行命令出错时,默认会发送邮件给cron任务的所有者.当然,发送邮件时也可能会出错.我就遇到了如题所示的错误.我使用的机器环境为Centos7.它默认会使用Postfix来发送邮件.)
重新启动
service postfix restart
3、然后就可以查看邮件里是什么错误了,命令:tail -f /var/spool/mail/root
4、接下来就可以根据具体报错内容去对应解决问题了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值