定时执行rsync同步数据以及mysql备份

需求:把机器A中的附件、图片等,备份到备份机B中。将数据库进行备份

附件备份

在A中,启动rsync服务,编辑/etc/xinetd.d/rsync文件,将其中的disable=yes改为disable=no,并重启xinetd服务(需安装xinetd)

 vi /etc/xinetd.d/rsync
 /etc/init.d/xinetd restart

手动创建rsync的主配置文件: vi /etc/rsyncd.conf ,输入

        uid=root
        gid=root
        max connections=4
        log file=/var/log/rsyncd.log
        pid file=/var/run/rsyncd.pid
        lock file=/var/run/rsyncd.lock
        secrets file=/etc/rsyncd.passwd
        hosts allow=10.46.xx.xx
        
        [databak]
        comment= backup web
        path=/xx/xx/mybak
        read only = no
        exclude=test
auth users=worker

 (主机)创建密码文件

echo "work:abc12" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd

(备份机)创建备份机密码

vi /etc/rsync_client.pwd,输入abc12
chmod 600 /etc/rsync_client.pwd 

备份机创建文件/home/bakdata.sh,赋予可执行权限 chmod +x bakdata.sh 。bakdata.sh的内容为

echo '--------------------------------------------------------------' >> /home/data.log
    rsync -avz --progress --exclude "xxx" --password-file=/etc/rsync_client.pwd worker@10.46.1.62::data /home/bak/databak/ >> /home/data.log 2>& 1 &
    time=` date +%Y%m%d%H%M `
echo $time >> /home/data.log

 

数据库备份

备份机创建文件/home/bakmysql.sh 赋予可执行权限:chmod +x bakmysql.sh。bakmysql.sh的内容为

    backupdir=/home/bak/databasebak
    time=` date +%Y%m%d%H%M `
    /home/server/mysql/bin/mysqldump -h10.xx.x.xx -ubackup -pbackup XXXX| gzip > $backupdir/database$time.sql.gz
find $backupdir -name database"*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1

 

crontab定时任务
备份机设置定时任务,vi /etc/crontab ,加入:

00 03 * * * root /home/bakmysql.sh
00 04 * * * root /home/bakdata.sh

表示每天凌晨3点进行备份数据库,4点同步data数据

 

问题:

1、出现 “rsync: opendir "/." (in data) failed: Permission denied (13)”

  解决: 不必重启Linux: setenforce 0;但开机后会恢复,则在/etc/sysconfig/selinux 中设置 SELINUX=disabled,将它关闭

posted @ 2018-01-19 07:30  ohmydenzi  阅读(376)  评论(0编辑  收藏  举报