利用rsync实现备份windows文件去Linux服务器上

目录

    • 一、windows
        • 安装Cwrsyncserver
        • 配置rsync.conf文件
        • 新建密码文件:etc/rsyncd.secrets (安装目录下)
        • 启动cwrsync服务
    • 二、Linux配置
        • 创建密码文件
        • 把同步计划加入crontab
    • 三、优化脚本

一、windows

安装Cwrsyncserver

配置rsync.conf文件

##在安装目录下
use chroot = false                         
strict modes = false           ###不验证用户密码
hosts allow = *                  ##允许的客户机,* 为所有机器
log file = rsyncd.log

# Module definitions
# Remember cygwin naming conventions : c:\work becomes /cygwin/c/work
#
[test]                                                             #模块名字,可以自定义
path = /cygdrive/d/sql_serverbackup           
 #选中备份路径不支持中文,以cygdrive开通,后面的是真是路径
read only = false               
transfer logging = yes 
auth users = svcrsync                                    #指定访问的用户名
secrets file = etc/rsyncd.secrets                    #指定访问的用户名密码存放路径
UID = 0
GID = 0

新建密码文件:etc/rsyncd.secrets (安装目录下)

用户米:密码

启动cwrsync服务

* 如果开了防火墙,则要添加tcp端口873允许通信

右键 我的电脑->管理->服务与应用程序->服务->RsyncServer->右键 属性->登陆-> 在此帐户输入有效的用户名(域用户、要有权限管理E盘的用户名哦),密码和、再次确认密码;此处使用域管理员帐号与密码(如果用户和密码无权限或错误,将无法启动RsyncServer服务)。启动RsyncServer服务,并修改属性为自动,以便后续开机就启动此服务。

二、Linux配置

创建密码文件

  • 把在windows安装软件时设置的密码写入这个文件中,并设置权限为600
echo "密码"  > /root/backup_passwd
chmod 600 /root/backup_passwd

把同步计划加入crontab

rsync -vzaP --port=873 --password-file=/root/rsync_passwd --remove-sources-files [email protected]::test /sql_backup6716/

–remove-source-files 删除源文件

三、优化脚本

#!/bin/bash
#zll
password=/root/backup_passwd
source='192.168.1.1::test'
user=svcrsync
dest=/sql_backup6716
/usr/bin/rsync -vzaP --port=873 --password-file=$password $user@$source   $dest
if [ $? -eq 0 ]
    then
    echo "备份成功!"
else
    echo "error,重试?:"
    /usr/bin/rsync -vzaP --port=873 --password-file=$password $user@$source   $dest
fi
find /sql_backup/ -name "*.bak" -mtime +17 -exec rm -rf {} \;
  • 把脚本加入到crontab里
0 * * * * * /bin/bash -x /sql_backup6716/backup.sh > /dev/null 2>&1

你可能感兴趣的:(windows)