1 rsync工具介绍
2 rsync常用选项
3 rsync通过ssh同步

4 rsync通过服务同步

5 linux系统日志

6 screen工具

扩展

1. Linux日志文件总管logrotate  

http://linux.cn/article-4126-1.html

1、rsync工具介绍

可以实现增量拷贝

拷贝/etc/passwd文件到/tmp/下并且改名叫1.txt(-v表示可视化)

rsync生成带时间戳的日志 rsync日志查看_运维

远程同步(拷贝到对方机器root用户下)

rsync生成带时间戳的日志 rsync日志查看_配置文件_02

不写用户以当前用户

rsync -av /etc/passwd 192.168.238.6:/tmp/1.txt

rsync命令格式

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_03

 

2、rsync常用选项

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_04



使用-a选项

rsync生成带时间戳的日志 rsync日志查看_操作系统_05

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_06



使用-L选项

加L会把l的含义覆盖掉,把软链接所指向的源文件给拷贝到目标目录下

rsync生成带时间戳的日志 rsync日志查看_配置文件_07

创建软链接文件

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_08

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_09



使用--delete选项

rsync生成带时间戳的日志 rsync日志查看_开发工具_10

删除新建的文件new.txt

rsync生成带时间戳的日志 rsync日志查看_开发工具_11



使用--exclude选项

过滤点所有含.txt文件

rsync生成带时间戳的日志 rsync日志查看_开发工具_12

支持多次过滤文件,在过滤点以aming开头的文件

rsync生成带时间戳的日志 rsync日志查看_操作系统_13



使用-P选项

先删除/tmp/111_dest/*文件,然后观察rsync同步过程状态

rsync生成带时间戳的日志 rsync日志查看_操作系统_14



使用-u选项

不加u,目标目录下的文件会被覆盖掉

rsync生成带时间戳的日志 rsync日志查看_运维_15

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_16

加上u,会保留不被覆盖掉

rsync生成带时间戳的日志 rsync日志查看_配置文件_17



3、rsync通过ssh同步

打开两个虚拟机,两者可以通信,其中一个IP是192.168.133.130,另外一个IP192.168.133.132,两个事先都要安装好rsync包,yum install -y rsync

rsync生成带时间戳的日志 rsync日志查看_配置文件_18

然后开始同步文件(推文件),输入root密码

rsync生成带时间戳的日志 rsync日志查看_运维_19

在第二台虚拟机上查看同步的文件

rsync生成带时间戳的日志 rsync日志查看_开发工具_20

也可以第二台虚拟机的文件传到本机上(拉文件)

rsync生成带时间戳的日志 rsync日志查看_配置文件_21

rsync生成带时间戳的日志 rsync日志查看_运维_22

rsync生成带时间戳的日志 rsync日志查看_操作系统_23



rsync通过服务方式进行同步

  • 要编辑配置文件/etc/rsyncd.conf
  • 启动服务rsync --daemon
  • 格式:rsync -av test1/ 192.168.202.130::module/dir/

首先编辑配置文件vim /etc/rsyncd.conf,在最底部添加代码如下,保存退出

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_24

然后启动服务rsync --daemon,检查服务是否启动

rsync生成带时间戳的日志 rsync日志查看_操作系统_25

检查监听的端口是否为873

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_26

编辑配置文件vim /etc/rsyncd.conf,修改其中的路径path=/tmp/rsync,保存退出

新建目录mkdir=/tmp/rsync,并设置权限为777

rsync生成带时间戳的日志 rsync日志查看_运维_27

然后在另一个虚拟机上同步一个文件过去

rsync生成带时间戳的日志 rsync日志查看_运维_28

出现错误,先检查网络连通性

rsync生成带时间戳的日志 rsync日志查看_运维_29

然后检查873端口通不通,安装yum install -y telent,再运行 telent 192.168.133.130 873,发现873端口不通

rsync生成带时间戳的日志 rsync日志查看_操作系统_30

rsync生成带时间戳的日志 rsync日志查看_开发工具_31

遇到873端口不通的情况下,先检查是不是iptables的问题# iptables -nvL

rsync生成带时间戳的日志 rsync日志查看_运维_32

发现是iptables的问题,要停到firewalld 服务,同时虚拟机1也要停掉firewalld 服务

rsync生成带时间戳的日志 rsync日志查看_配置文件_33

rsync生成带时间戳的日志 rsync日志查看_操作系统_34

这时检查端口,就会显示通了,退出按ctrl+],输入quit就可以了

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_35

接着运行命令rsync -avP /tmp/aming.txt 192.168.133.130::test/aming-02.txt,提示输入密码

rsync生成带时间戳的日志 rsync日志查看_配置文件_36

我们可以在虚拟机1中修改配置文件# vim /etc/rsyncd.conf,注释掉定义密码的两行

rsync生成带时间戳的日志 rsync日志查看_运维_37

然后回到虚拟机2中,运行命令rsync -avP /tmp/aming.txt 192.168.133.130::test/aming-02.txt,就不需要输入密码了

rsync生成带时间戳的日志 rsync日志查看_开发工具_38

在虚拟机1中查看文件

rsync生成带时间戳的日志 rsync日志查看_开发工具_39

也可以从虚拟机2中拉文件到虚拟机1中

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_40



rsyncd.conf配置文件详解

port:指定在哪个端口启动rsyncd服务,默认是873端口。

log file:指定日志文件。

pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。

address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。

[]:指定模块名,里面内容自定义。

path:指定数据存放的路径。

use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,建议你设置成false。

max connections:指定最大的连接数,默认是0,即没有限制。

read only ture|false:如果为true,则不能上传到该模块指定的路径下。

list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。 uid/gid:指定传输文件时以哪个用户/组的身份传输。

auth users:指定传输时要使用的用户名。

secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码文件的权限一定要是600。格式:用户名:密码

hosts allow:表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。

当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件

rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass

其中/etc/pass内容就是一个密码,权限要改为600



linux系统日志



linux系统日志

/var/log/messages 是系统总的日志

rsync生成带时间戳的日志 rsync日志查看_运维_41

通过logrotate工具实现日志自动切割

rsync生成带时间戳的日志 rsync日志查看_开发工具_42

查看logrotate配置文件,日志每周切割一次,保留4个,创建新的文件,使用日期作为后缀名,是否要压缩

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_43

切割文件每月一次,指定权限,属主属组

rsync生成带时间戳的日志 rsync日志查看_操作系统_44

查看 /etc/logrotate.d/syslog 文件

rsync生成带时间戳的日志 rsync日志查看_操作系统_45



dmesg命令

dmesg命令会把系统硬件相关的日志列出来,保存在内存中

dmesg -c清空系统硬件相关的日志

/var/log/dmesg 系统启动日志,与dmesg命令无关



last命令

查看你正确的登录历史;调用的文件/var/log/wtmp,这是个二进制文件,只能用last查看

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_46



lastb命令

查看登陆失败的用户,对应的文件/var/log/btmp,也是二进制文件



安全日志

/var/log/secure,登录系统验证成功,就会记录一个日志,没有成功也会记录



screen工具

screen可以理解为一个虚拟的终端

场景:有时我们执行一条命令或者脚本,需要很长时间(几小时或几天),为了不让任务意外中断,有两种方法解决

  • 将任务丢到后台,然后加一个日志输出,命令nohup command &,nohup后面接命令加上日志再加上&符号
  • screen工具,将命令放到这个终端中执行,在退出远程终端前,将screen丢到后台去

首先安装screen命令,yum install -y screen,安装完成后输入screen命令回车,进入screen的窗口,其实就是一个虚拟终端;执行命令vmstat 1,然后先按ctrl+a,再按d键,screen就进入后台执行命令了。

然后输入screen -ls命令,查看任务

rsync生成带时间戳的日志 rsync日志查看_操作系统_47

回到screen后台,输入screen -r (id号)

rsync生成带时间戳的日志 rsync日志查看_开发工具_48

如果不需要screen后台,输入exit即可

rsync生成带时间戳的日志 rsync日志查看_配置文件_49

screen可以允许多个终端后台同时运行

rsync生成带时间戳的日志 rsync日志查看_运维_50

rsync生成带时间戳的日志 rsync日志查看_rsync生成带时间戳的日志_51

想进那个后台,就输入screen -r (对应的id号)

screen自定义名称

screen -S (自定义名称)

rsync生成带时间戳的日志 rsync日志查看_开发工具_52

rsync生成带时间戳的日志 rsync日志查看_操作系统_53

rsync生成带时间戳的日志 rsync日志查看_运维_54

进入后台,也可以输入screen -r (自定义名称)

rsync生成带时间戳的日志 rsync日志查看_运维_55