热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

rsync+cronjob定时同步任务

前几天做项目中有数据同步的功能(包括数据库表数据的同步和文件同步),对于在两台服务器之间同步文件,研究了一下rsync的同步功能,发现挺好用的,记录在此。假设有Linux服
前几天做项目中有数据同步的功能(包括数据库表数据的同步和文件同步),对于在两台服务器之间同步文件,研究了一下rsync的同步功能,发现挺好用的,记录在此。
假设有Linux服务器A和服务器B,在这两台服务器之间同步文件。
一、rsync同步功能配置
1、安装rsync(最好用root用户,服务器A和服务器B都需要安装rsync,推荐使用yum安装)
    #yum install rsync

2、服务器B上(例如10.47.160.93),配置三个文件rsyncd.conf(主配置文件)、rsyncd.secrets(密码文件)、rsyncd.motd(rysnc服务器信息)
    #touch /etc/rsyncd.conf  #创建rsyncd.conf,这是rsync服务器的配置文件
    #touch /etc/rsyncd.secrets  #创建rsyncd.secrets,这是用户密码文件
    #chmod 600 /etc/rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!
    (注意:服务器A和服务器B都要设置该权限!)
    #touch /etc/rsyncd.motd

    修改rsyncd.conf文件:
        #vi rsyncd.conf
    内容改为:
       # /etc/rsyncd: configuration file for rsync daemon mode
        uid = root
        gid = root
        use chroot = no
        max connections = 6
        pid file = /var/run/rsyncd.pid
        read only = no
        hosts allow = 10.47.160.0/255.255.255.0
        motd file = /etc/rsyncd.motd
        log file = /var/log/rsync.log
        log format = %t %a %m %f %b
        syslog facility = local3
        timeout = 600
        [zzzcs]
        path = /home/nbjk/upload 
        list=no
        ignore errors
        comment = This is sync upload files
        auth users = root
        secrets file = /etc/rsyncd.secrets
     特别注意:
        hosts allow中IP和子网掩码应设置为服务器A的真实网段数据。

    修改rsyncd.secrets密码文件:
        #vi /etc/rsyncd.secrets
    内容改为:
        root:zzzcs

    启动rsync服务:
        #rsync --daemon
    (如果提示没有找到rsyncd.secrets文件则说明这个文件没有在默认的/etc/路径下或者没有创建,只要把这个文件移动过去就可以了

3、服务器A上,提前安装好rsync的前提下,配置密码文件
    #touch /etc/rsyncd.secrets  #创建rsyncd.secrets密码文件
    #chmod 600 /etc/rsyncd.secrets  #将rsyncd.secrets这个密码文件的文件属性设为root拥有, 且权限要设为600, 否则无法备份成功!

    修改rsyncd.secrets密码文件:
        #vi /etc/rsyncd.secrets
    内容改为:
        zzzcs

    在服务器A上执行命令,从服务器A向服务器B推送数据:
        #rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/*  rsync://root@10.47.160.93/zzzcs
     说明:
        1)上述同步命令中的IP为服务器B的地址;
        2)可以将该命令写入一个.sh文件,并用cron job定时执行,即可达到定时向外网服务器同步文件的目的;

    在服务器A上执行命令,从服务器B拉取数据到服务器A:
        #rsync -arv --password-file=/etc/rsyncd.secrets  rsync://root@10.47.160.93/zzzcs  /home/nbjk/upload

二、Linux cron job定时任务
    执行命令:
        #crontab -e
    在定时文件中写入定时执行任务,实例如下:
       * * * * * /home/***/***/rsync.sh                 每分钟执行一次同步脚本;
        0 * * * * /home/***/***/rsync.sh                 每小时执行一次同步脚本;
        0 0 * * * /home/***/***/rsync.sh                 每天零点执行一次同步脚本; 
        0 9,18 * * * /home/***/***/rsync.sh            每天的9AM和6PM执行一次同步脚本; 

    新建一个/home/***/***/rsync.sh文件,在文件中写入执行同步的命令:
    rsync -arv --password-file=/etc/rsyncd.secrets /home/nbjk/upload/*  rsync://root@10.47.160.93/zzzcs >/dev/null 2>&1




推荐阅读
  • 技术日志:Ansible的安装及模块管理详解 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 服务器上的nginx使用logrotate来分割日志,设置为每天分割。但是logrotate似乎没有工作,日志并没有分割。服务器是CentOS6。为了找到原因 ... [详细]
  • 前言crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较 ... [详细]
  • 记录一次ali云线上环境jenkins被攻击挖矿的处理过程
    周六告警一个接一个,感觉极不寻常netstat-anpd执行结果如下久违的中毒感觉,查看一下各用户下的crontabcatetcpasswd|cut-f1-d:|xargs-I{} ... [详细]
  • 启动服务#servicecrondstart或者#etcinit.dcrondstart格式:*  *  *  *  *  command分 时 日 月 周  ... [详细]
  • 2019年独角兽企业招聘Python工程师标准课程概览
    本文详细介绍了2019年独角兽企业在招聘Python工程师时的标准课程内容,包括Shell脚本中的逻辑判断、文件属性判断、if语句的特殊用法及case语句的应用。 ... [详细]
  • 本文深入解析了Linux系统中常用的文件和目录操作命令,包括但不限于`ls`、`cd`等。通过详细讲解每个命令的功能、语法及应用场景,帮助读者掌握这些基本工具的使用方法,提升在Linux环境下的操作效率。此外,文章还介绍了如何结合选项和参数来实现更复杂的文件管理任务,为初学者提供了丰富的实践示例和技巧。 ... [详细]
  • PHP预处理常量详解:如何定义与使用常量 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 在项目开发过程中,掌握一些关键的Linux命令至关重要。例如,使用 `Ctrl+C` 可以立即终止当前正在执行的命令;通过 `ps -ef | grep ias` 可以查看特定服务的进程信息,包括进程ID(PID)和JVM参数(如内存分配和远程连接端口);而 `netstat -apn | more` 则用于显示网络连接状态,帮助开发者监控和调试网络服务。这些命令不仅提高了开发效率,还能有效解决运行时的各种问题。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 如何在Linux系统中利用crontab定时执行Shell脚本任务?
    在Linux系统中,如何实现定时执行任务脚本?在服务器日常运维过程中,经常需要定期执行某些任务,例如数据库备份、日志文件切割等。通过使用crontab工具,可以轻松配置这些周期性任务,确保它们按时自动运行,提高系统管理效率和可靠性。 ... [详细]
  • 想到一个问题,如果在crontab里有个定时任务设置为一分钟执行一次,但是它执行的时间可能会超过一分钟,此时crontab一分钟后会再次运行该脚本吗?这样会不会出现冲突呢?网上找了下,说可以用Linu ... [详细]
  • #!binbash########################################################################## File Name : rsync_nobody.sh#  ... [详细]
author-avatar
Fuckkkkkkkkkk7777_352
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有