rsync通过服务同步、Linux系统日志、screen工具 使用介绍
第8周5月15日任务
课程内容:
10.32/10.33 rsync通过服务同步
10.34 linux系统日志
10.35 screen工具
扩展
1. Linux日志文件总管logrotate http://linux.cn/article-4126-1.html
2. xargs用法详解 http://blog.csdn.net/zhangfn2011/article/details/6776925
10.32/10.33 rsync通过服务同步
rsync还有一种方式是通过服务的方式同步,这种服务方式首先需要开启一个服务,它的架构是CS架构,需要客服端和服务端,服务端开启一个服务rsync服务,并且要监听一个端口,默认是873,而且这个端口是可以自定义的,开启完端口后客户端就可以和服务端873端口进行通信传输数据。
命令格式:rsync -av test1/ 192.168.133.130::module/dir/ (有2个冒号)
在启动服务之前,我们要先编辑配置文件,默认保存在这个路径/etc/rsyncd.conf ,也可以写到其他地方,但是写到别的地方之后,假如要开启服务,就不能够直接这样运行了(启动服务rsync --daemon)还需要加--configfile等于它的路径,如果写到默认的路径就可以直接使用rsync --daemon 启动服务,也就可以省掉--configfile的那些参数了。
操作实例如下:
①、[root@jimmylinux-001 ~]# vi /etc/rsyncd.conf 编辑配置文件,并且在#下一行写入以下信息。
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.52.128
[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.52.129
②、[root@jimmylinux-001 ~]# rsync --daemon 启动服务
③、[root@jimmylinux-001 ~]# ps aux |grep rsync 检查服务是否启动
④、[root@jimmylinux-001 ~]# netstat -lntp 监听端口873,如果没有指定监听IP,就会绑定0.0.0.0全部的网段和IP。
以上的操作就是对服务端的设置,现在服务端已经弄好了。
再执行以下步骤:
[root@jimmylinux-001 ~]# vi /etc/rsyncd.conf 重新修改配置文件,把路径设置成path=/tmp/rsync
[root@jimmylinux-001 ~]# mkdir /tmp/rsync/ 在tmp目录下新建rsync目录
[root@jimmylinux-001 ~]# chmod 777 /tmp/rsync/ 把rsync目录设置为777权限
在limingsong-002机器上运行命令rsync -avP /tmp/666.txt 192.168.52.128::test/666-002.txt 同步一个文件到001机器上面去
报错提示没有路由到远程的机器,遇到这样情况首先检查下网络连接情况,ping下001的机器是否可以ping通,如果能够ping通,就再检查下Telnet 873端口通不通,默认没有Telnet,使用yum安装。
Telnet也提示没有路由到远程的机器,这种情况一般都是因为防火墙开启导致,停掉001和002 2台服务器firewalld即可。
[root@jimmylinux-002 ~]# iptables -nvL
[root@jimmylinux-002 ~]# systemctl stop firewalld 停掉firewalld服务
重新运行Telnet如果出现以下界面说明可以连接到873端口,按Ctrl+] 然后quit可以退出Telnet界面。
这个时候再运行rsync -avP /tmp/666.txt 192.168.52.128::test/666-002.txt
可以同步推送到001机器,当然也可以在002机器上把文件拉回来。
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。
在配置文件中如果修改了端口号为8730,那么一定要重启服务后才会生效。
[root@jimmylinux-001 ~]# killall rsync killall所有rsync服务
[root@jimmylinux-001 ~]# ps aux |grep rsync 查看是否有启动rsync服务
[root@jimmylinux-001 ~]# rsync --daemon 启动rsync服务
[root@jimmylinux-002 ~]# rsync -avP 192.168.52.128::test/666-002.txt /tmp/888.txt
通过上面3个步骤操作后再去同步就会报错,因为没有指定端口号8730。
[root@jimmylinux-002 ~]# rsync -avP --port 8730 192.168.52.128::test/666-002.txt /tmp/888.txt 需要指定端口--port 8730这样才是正确的操作方式
max connections:指定最大的连接数,默认是0,即没有限制。
read only ture|false:如果服务端设置为只读true,则不能上传到该模块指定的路径下。
list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。
[root@jimmylinux-002 ~]# rsync --port=8730 192.168.52.128::
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
hosts allow=192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24 hosts allow表示允许在那台机器上操作,可以指定多台机器,以空格分隔填写不同机器的IP或者指定IP段。
10.34 linux系统日志
很多服务如果启动不了,都是可以通过查看Linux系统日志找到原因。
[root@jimmylinux-001 ~]# ls /var/log/messages 列出系统的总日志
[root@jimmylinux-001 ~]# less !$ less可以查看到日志中都记录了包括:系统、网络、内核、服务 等等的日志。
如果长年累月的日志都保存到系统日志中,那么也会容易导致日志文件很大,所以就会有一种自动切割日志的机制。
/var/log/messages 系统总日志
/etc/logrotate.conf 日志切割配置文件
参考https://my.oschina.net/u/2000675/blog/908189
dmesg命令
/var/log/dmesg 日志
last命令,调用的文件/var/log/wtmp
lastb命令查看登录失败的用户,对应的文件时/var/log/btmp
/var/log/secure
[root@jimmylinux-001 ~]# dmesg 列出所有硬件相关的日志,这个日志是保存到内存中的,并不是一个文件形式保存。比如硬盘坏了、或者网卡有问题,都会记录到这个命令中。
[root@jimmylinux-001 ~]# dmesg -c 清空日志,重启系统后会重新自动生成。
[root@jimmylinux-001 ~]# ls /var/log/dmesg 列出系统启动日志,可以通过less /var/log/dmesg 查看。
[root@jimmylinux-001 ~]# last 用来查看正确的登录历史的日志
last命令,调用的文件是/var/log/wtmp 不能够直接cat,因为是二进制文件。
lastb命令查看登录失败的用户,对应的文件时/var/log/btmp
/var/log/secure 安全日志(记录成功或失败或被暴力破解的信息)
10.35 screen工具
为了不让一个任务意外中断
nohup command &
screen是一个虚拟终端
yum install -y screen
screen直接回车就进入了虚拟终端
ctral a组合键再按d退出虚拟终端,但不是结束
screen -ls 查看虚拟终端列表
screen -r id 进入指定的终端
screen -S jimmy
screen -r jimmy
操作实例如下:
执行screen后如果想退出虚拟终端,可以使用Ctrl+a 然后再按d 退到后台运行,实际上并没有结束screen。
[root@jimmylinux-001 ~]# screen -ls 查看虚拟终端列表
[root@jimmylinux-001 ~]# screen -r 1355 重新进入指定的screen终端
可以执行多个screen,但是除了ID号不一样,后面的全部是pts-0.jimmylinux-001,时间久了自己也不知道具体哪个screen是什么,所以为了方便操作,可以使用screen -S 自定义名称,重新进入的时候除了可以指定ID,也可以指定自定义的名称。