一 rsync 通过服务同步

rsync 自启动 rsync启动服务_python

    服务的方式是c/s架构,需要在服务端开启一个服务rsync,并且要开启一个端口873



1、开启服务端rsync步骤

    1)编辑配置文件

        配置文件的默认路径是/etc/rsyncd.conf  ,也可以放到其他位置

rsync 自启动 rsync启动服务_rsync 自启动_02

    2)启动服务

        # rsync --daemon 

        # rsync --daemon --configfile=配置文件的路径  //当配置文件路径不是默认路径时需要加上--config

rsync 自启动 rsync启动服务_运维_03

    3) 从客户端同步文件到服务端

        模块为test,路径如下:

rsync 自启动 rsync启动服务_rsync 自启动_04

    # rsync -avP /tmp/aming.txt 192.168.133.130::test/aming-02.txt //同步本机文件给远程机器;使用双冒号就表示使用的是rsyncd.conf

rsync 自启动 rsync启动服务_运维_05

    # rsync -avP 192.168.133.130::test/aming-02.txt /tmp/123.txt   //同步远程客服机器的文件到本机

rsync 自启动 rsync启动服务_rsync 自启动_06

小技巧:检查端口是否通的命令# telnet IP Port

rsync 自启动 rsync启动服务_运维_07

上图发现端口不通,首先考虑是iptables的问题,

rsync 自启动 rsync启动服务_rsync 自启动_08

    这种情况就需要关闭c/s两端的firewalld

rsync 自启动 rsync启动服务_python_09

    再来测试端口

rsync 自启动 rsync启动服务_运维_10

    按下ctrl+u结束上图的命令,再quit

rsync 自启动 rsync启动服务_配置文件_11

2、rsyncd.conf配置文件详解

rsync 自启动 rsync启动服务_配置文件_12

    1)use chroot true|false

        首先我们将chroot设置为true,配置文件此处被修改后不需要重启

rsync 自启动 rsync启动服务_配置文件_13

下面这种方式同步文件没有问题:

rsync 自启动 rsync启动服务_配置文件_14

但是加上-L后就没有同步

rsync 自启动 rsync启动服务_配置文件_15

下面来查看日志文件:

rsync 自启动 rsync启动服务_运维_16

如果将chroot改为false,则不会出现上述问题

3、修改配置文件的端口号

        修改端口号后需要重启rsync服务才能使修改有效,并且在同步时需要加上端口号

rsync 自启动 rsync启动服务_python_17

4、

rsync 自启动 rsync启动服务_python_18

    1)list

    当服务端配置文件list=true时,使用下面命令双冒号后面不跟模块名,系统会将模块名列出来;

rsync 自启动 rsync启动服务_配置文件_19

当服务端配置文件list=false时,使用下面命令双冒号后面不跟模块名,系统就不会会将模块名列出来;

rsync 自启动 rsync启动服务_配置文件_20

    2)uid/gid

rsync 自启动 rsync启动服务_配置文件_21

    在配置文件中将文件所属主/组改为nobody

rsync 自启动 rsync启动服务_运维_22

    结果发现同步文件到服务端出错

rsync 自启动 rsync启动服务_python_23

    3)secrets file

    使用auth users需要每次指定访问的用户名和输入密码,这样会造成凌晨备份等场景不方便,针对这种情况,我们可以使用密码文件,在这个文件中写入密码,并设置权限为600

rsync 自启动 rsync启动服务_操作系统_24

    此时我们再使用密码文件来同步

rsync 自启动 rsync启动服务_操作系统_25



二 Linux系统日志

rsync 自启动 rsync启动服务_python_26

    建议在系统启动失败时看系统日志

    1、/var/log/messages

        系统的一个总的日志,如果系统没有单独给某个服务定义日志文件,则都会写到这个日志文件中

rsync 自启动 rsync启动服务_操作系统_27

    2、日志切割

        当日志文件大小增长到一定大小时,就会被切割

rsync 自启动 rsync启动服务_运维_28

    日志切割机制是有一个配置文件管控的/etc/logrotate.conf

rsync 自启动 rsync启动服务_运维_29

    上图表示每周切割一次,保留4次,即保留1个月的日志,dateext是后缀名

rsync 自启动 rsync启动服务_配置文件_30

    上图可以看到另外还有一个目录/ect/logrotate.d  目录下的文件列表如下:

rsync 自启动 rsync启动服务_运维_31

    打开syslog文件:

rsync 自启动 rsync启动服务_rsync 自启动_32

    3、dmesg命令

        这个是在内存中的,如果系统硬件有什么问题就会记录在这里面

    # dmesg -c  // 清空这里的日志,但一重启又会写入了

    4、/var/log/dmesg日志文件

        这个文件跟dmesg命令没有关联,这个日志是系统启动的一个日志,记录的一些背景信息

rsync 自启动 rsync启动服务_rsync 自启动_33

    5、last命令

        用于查看登陆的正常信息,

rsync 自启动 rsync启动服务_rsync 自启动_34

    这个命令调用的文件是/var/log/wtmp文件,这个文件是二进制文件,不能直接cat,只能通过last命令查看

rsync 自启动 rsync启动服务_操作系统_35

    6、lastb命令

    用于查看登陆失败的用户,调用的文件是/var/log/btmp文件,这个文件是二进制文件,不能直接cat,只能通过lastb命令查看

    7、/var/log/secure

        安全文件,内容如下图

rsync 自启动 rsync启动服务_配置文件_36

    如果有暴力破解,每登陆一次都会产生一条记录



三 screen工具

rsync 自启动 rsync启动服务_配置文件_37

虚拟终端

    使用场景:当执行一个脚本时,执行时间很长,可能需要一两天,并且脚本会有一些输出,这就意味着这个脚本不能中断,如果运行时网络断开,就意味着脚本也就断开了,为了保证脚本在这一天多的时间中持续运行,得保证网络很强健,这时有两个解决方案,

一是将脚本丢到后台,输出数据写到日志里面

    使用命令# nohup 命令 &

    缺点是无法直接查看实时信息

为了解决这个问题,就使用到了screen工具,使用虚拟终端,可以随时调出来看

1、安装screen、开启虚拟终端

    # yum install -y screen

    进入虚拟终端使用命令# screen

2、退出虚拟终端

    ctrl+a 再按下b就可以退出虚拟终端,但没有退出

 3、查看虚拟终端的任务列表

    # screen -ls

rsync 自启动 rsync启动服务_运维_38

4、# screen -r 任务编号

    回到虚拟终端查看对应的任务

rsync 自启动 rsync启动服务_操作系统_39

    5、杀死退出screen

        # exit

    此时再来查看虚拟终端列表,没有任务

rsync 自启动 rsync启动服务_运维_40

    6、多个screen

rsync 自启动 rsync启动服务_运维_41

    7、# screen -S "name"

        这个命令用于给对应screen取一个名字做区分,下图框中的文字就是screen的名字,

rsync 自启动 rsync启动服务_rsync 自启动_42

当需要把这个任务调到前台来时,就可以使用名字来调:

rsync 自启动 rsync启动服务_rsync 自启动_43