内容摘要

  • rsync工具介绍
  • rsync常用选项
  • rsync通过ssh同步
  • rsync通过服务同步
  • linux系统日志
  • screen工具

一、rsync工具介绍(数据备份)

rsync不仅可以远程同步数据,而且还可以本地同步数据,它不同于cp或scp,不会覆盖以前的数据(如果数据已存在),而是先判断依据存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

  • rsync的命令格式:
  1. rsync [OPTION] SRC DEST      本地同步
  2. rsync [OPTION] SRC [USER@]HOST: DEST     从本地数据同步到远程目录
  3. rsync [OPTION] [USER@]HOST:SRC  DEST     从远程目录同步数据到本地
  4. rsync [OPTION] [USER@]HOST::SRC  DEST    从远程目录同步数据到本地,验证方式不同
  5. rsync [OPTION] SRC  [USER@]HOST::DEST    从本地数据同步到远程目录,验证方式不同

[OPTION]=选项、SRC=源地址、DEST=目标地址、[user@]=用户名(如root@,可省略,省略时默认为当前用户)、HOST=ip地址。


二、rsync常用选项

  • -a 包含-rtplgoD
  • -r 同步目录时要加上,类似cp时的-r
  • -v 同步时显示一些信息,让我们知道同步的过程     
  • -l 保留软链接
  • -L加上该选项后,同步软链接时会把源文件给同步
  • -p 保持文件的权限属性
  • -o 保持文件的属组
  • -g 保持文件的属组
  • -D 保持设备文件信息
  • -t 保持文件的时间属性
  • --delte 删除DEST(目标目录)中SRC(源目录)没有的文件
  • --exclud 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步。
  • -P显示同步过程,比如速率,比-v更加详细
  • -u 加上该选项后,如果DEST中的文件比SRC新,则不同步
  • -z 传输时压缩

使用相关选项:

  • -L选项,在使用时会覆盖-l选项。使同步软链接文件时,目标文件会复制软链接的源文件。如图:

rsyncd日志 rsync日志查看_数据


  • --delte选项,删除目标中源没有的文件。如图:

rsyncd日志 rsync日志查看_数据_02


  • --exclude选项。同步时过滤掉指定的文件。

rsyncd日志 rsync日志查看_linux运维_03

  • -P选项,显示同步的过程。如图:

rsyncd日志 rsync日志查看_数据_04

  • -u 加上该选项后,如果DEST中的文件比SRC新,则不同步。如图:

rsyncd日志 rsync日志查看_rsyncd日志_05

三、rsync通过ssh同步

  • 从本地数据同步到远程目录:  rsync [OPTION] SRC [USER@]HOST: DEST     如图:

rsyncd日志 rsync日志查看_rsyncd日志_06

  • 远程同步时指定端口,如图:

rsyncd日志 rsync日志查看_linux运维_07


四、rsync通过服务同步

rsync通过服务同步时,会监听一个端口,默认为873,这个端口可以自定义。开启服务同步时,客户端就可以通过端口和服务端同步。

  • 使用服务同步前,要编辑配置文件/etc/rsyncd.conf(只有当编辑配置文件中的端口时才需要重启服务),内容如下:
port=873                                      
log file=/var/log/rsync.log            
pid file=/var/run/rsyncd.pid          
address=192.168.133.130
[test]
path=/root/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2  192.168.133.0/24


rsyncd日志 rsync日志查看_数据_08


  • 启动服务:rsync --daemon
  • 使用命令 ps aux | grep rsync 查看服务是否正常启动。(当进程未正常启动时,可以检查配置文件是否填写正确,如配置的ip地址是否正确。)
  • 使用命令 netstat -lnp  查看指定端口是否在监听装填。
  • 使用 telnet 192.16229.128 873   查看指定ip端的端口是否能够连通。(退出方式:ctrl + ]  再输入 quit )

rsyncd日志 rsync日志查看_rsync_09

  • 若还是无法使用,可使用命令iptables -nvL查看firewalld设置,并尝试使用命令 systemctl stop firewalld 关闭两台服务同步的机器的firewalld防火墙。


  • 服务同步命令:rsync -avP /tmp/test.txt 192.168.229.128::test/aming.txt
  1. 符号 :: 是服务同步的标志


  • 配置文件中的设置及定义:

rsyncd日志 rsync日志查看_rsyncd日志_10


rsyncd日志 rsync日志查看_linux运维_11

  • 将默认端口873更改为8730后操作,如图:

rsyncd日志 rsync日志查看_linux运维_12

  • 此时使用命令需添加指定端口:rsync -avP --prot 8730 192.168.229.128::test/aming.txt /tmp/test.txt


  • 列出服务端的模块名:rsync --prot 8730 192.168.229.128::   (当配置文件中的list设置为false时则不显示模块名,该选项属于一个安全选项。)
  • 当uid/gid 设置为一些权限较小的用户时,可能会导致无法同步 (如nobody 权限较小的一个系统用户)
  • 设置auth users 和sercrets后,连接服务端时这需要使用用户名和密码,操作如下
  • 修改/etc/rsyncd.passwd 文件,格式为   用户名:密码   ,如图:

rsyncd日志 rsync日志查看_linux运维_13


  • 连接服务端时添加用户名: rsync -avP --prot 8730 test@192.168.229.128::test/aming.txt /tmp/test.txt    (@前即为设置的用户名)
  • 当每天同步文件需要输入密码过于繁杂操作不变时,可在客户端设置一个密码文件,文件内容只需填写密码即可,随后也更改权限为600。并使用一下命令 :rsync -avPL --port 8730 --password-file=/etc/rsync_passwd test@192.168.229.128::test /tmp/111/     其中 --password-file=  即表示指定你设置的那个密码文件的路径



五、Linux系统日志

很多的错误只会保存在日志中,并不会直接显示在屏幕上。

  • 系统总的日志:/var/log/messages    (没有定义单独目录的日志到会保存在这个日志中)
  • logrotate 服务是为了防止日志无限制的增加采用的一个切割机制。
  • /etc/logrotate.conf 下保存有logrotate的配置文件。

rsyncd日志 rsync日志查看_rsyncd日志_14

  • logrotate的使用详解可参考:
  • 硬件相关日志命令:dmesg
  • 清空日志:dmesg -c
  • 系统启动的日志文件:/var/log/dmesg   (与命令dmesg无关)
  • 查看正确的登录系统日志:last         这个命令调用的是/var/log/wtmp(无法直接cat)
  • 查看错误的登录系统日志:lastb        这个命令调用的是/var/log/btmp(无法直接cat)
  • 安全日志:/var/log/secure                  



六、screen 工具 ——虚拟终端

在一个脚本或进程长时间运行呢无法中断时使用的一个工具,可以防止因为突发事件导致的任务中断。

  • 将任务放置后台运行(无法实时查看): nohup sh /usr/local/sbin/sleep.sh &
  • 进入虚拟终端: screen
  • 退出虚拟终端:在虚拟终端下使用 ctrl + a  然后按 d    (并没有结束任务,仅仅只是退出来)
  • 结束screen回话: ctrl+d,或者输入exit
  • 列出所有screen回话:screen -ls
  • 回到某个screen : screen -r  id号        (也可以使用名称)

rsyncd日志 rsync日志查看_数据_15

  1. 自定义screen会话名称:screen -S 自定义名称  



七、扩展


  • rsync工具介绍

Rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,同时可以对上传部分先进行压缩,因此rsync效率很高。rsync可以复制显示目录属性及文件,而且可以选择性地压缩及递归复制。但是rsync每次执行rsync命令都会遍历目标目录,如果文件数达到了一定规模,每次遍历就会消耗很多资源。

Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。

Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。

  • linux系统日志

Linux系统中会有很多的日志文件,这些文件可以帮助我们了解很多系统的重要事件。这些文件一般都存放在/var/log目录中。常见的日志文件有:

  1. /var/log/messages:这个文件相当重要,几乎系统发生的所有错误信息或重要信息都会记录在这个文件中,包含系统启动时的引导消息及系统运行时的其他状态消息。
  2. /var/log/secure:记录系统的安全信息,如ssh、ftp、pop3
  3. /var/log/dmesg:记录系统在启动时核心检测过程所生产的各项信息
  4. /var/log/lastlog:记录系统上所有用户最后一次登录系统的信息,lastlog命令就是利用该文件的内容来显示数据的。
  5. /var/log/wtmp:记录用户登录系统及退出系统的信息,该文件是经过处理的,无法直接查看,可以使用相关命令来查看,如last和ac命令
  6. /var/log/boot.log:记录守护进程启动和停止相关的日志信息
  7. /var/log/faillog:记录登录失败时的用户信息
  8. /var/log/cron:记录与定时任务crontab相关的日志信息
  9. /var/log/httod/,/var/log/news/,/var/log/samba/*:各个服务的日志文件,记录各自的服务产生的日志信息
  • syslogd服务可以帮助我们主动收集到设备的各种信息,并将其保存在服务器上,当出现问题时可以省去手动收集信息的麻烦,方便快捷的从syslogd服务中读取各种信息进行分析排错。
  • 在centos7中已经用rsyslogd取代了syslogd。rsyslod是加强版的syslogd,且完美兼容syslogd。
  • rsyslogd的主要配置文件:/etc/rsyslog.conf


  1. 扩展
  2. Linux日志文件总管logrotate: http://linux.cn/article-4126-1.html