rsync 通过服务同步
在使用该方法进行同步之前,需要开启rsync服务并且监听一个端口,默认为873端口。开启服务之前编辑rsync配置文件“/etc/rsyncd.conf”(将服务添加进去)然后直接使用命令:“rsync --daemon(服务名称)”进行同步。或者将配置文件写到一个自定义文件中,则需要使用参数“rsync--configfile=路径”进行同步。配置完成后客户端可以通过指定端口无服务端进行通信。
一、编辑 /etc/rsyncd.conf 文件,将一下内容添加到该文件中。(服务端)
port=873
# 指定哪个端口启动rsync服务,默认是873端口。
log file=/var/log/rsync.log
# 指定日志文件
pid file=/var/run/rsyncd.pid
# 指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。
address=192.168.133.130
# 指定启动rsync服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。
[test]
# []指定模块名,里面内容为自定义的
path=/tmp/rsync
# 指定数据存放的路径
use chroot=true
# 表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,建议设置成false。
max connections=4
# 指定最大的同时连接数,默认是0,即没有限制。
read only=no
# 是否只读,如果是yes ,则不能上传到该模块指定的路径下。
list=true
# 表示当用户查询该服务器上的可用模块时,该模块是否被列出来。true是列出,false是隐藏。
uid=root
gid=root
# uid gid 指定传输文件时以哪个用户/组的身份传输。
auth users=test
# 指定传输时要使用的用户名
secrets file=/etc/rsyncd.passwd
# 指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意:密码文件的权限一定要是600.格式: 用户名:密码
hosts allow=192.168.133.132
# 表示被允许连接该模块的主机,可以是IP或者网段(192.168.100.0/24),如果是多个,中间用空格隔开。
-
修改端口之后需要重新启动服务(先killall rsync,然后再rsync --daemon),然后同步数据的时候需要加上参数 --port 新端口号。
[root@localhost ~]# rsync -avP --port 8730 /tmp/a.txt 192.168.159.130::test/aaa.txt
-
当list为true时,rsync avP --port 873 192.168.159.128:: 就可以把模块名列出来。当list为false时,输入那条命令则不列出来。这是一个安全选项,建议不显示。
- 当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,如想在命令行中带上密码,可以在客户端设定一个密码文件。rsync -avL test@192.168.159.128::test/test1/ /tmp/test8/ --password-file =/etc/pass。 其中/etc/pass内容就是一个密码,权限要改为600。
密码文件在客户端上创建!客户端上的密码文件的密码要和secreats定义的密码文件的密码一致。
二、 启动服务
使用命令 rsync --daemon 启动服务(服务端)
[root@localhost ~]# rsync --daemon
[root@localhost ~]# ps aux | grep rsync
root 2843 0.0 0.0 114656 524 ? Ss 15:02 0:00 rsync --daemon
root 2845 0.0 0.0 112676 972 pts/0 S+ 15:03 0:00 grep --color=auto rsync
[root@localhost ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
......
tcp 0 0 192.168.159.128:873 0.0.0.0:* LISTEN 2843/rsync
......
三、在远程机器上同步文件(客户端)
[root@localhost ~]# rsync -avP /tmp/20171206.txt 192.168.159.128::test/06.txt
rsync: failed to connect to 192.168.159.128 (192.168.159.128): No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(122) [sender=3.0.9]
报错!这时候需要检测网络连通性和端口是否有问题。防火墙规则是否限制(systemctl stop firewalld 暂时关闭防火墙)
[root@localhost ~]# rsync -avP /tmp/20171206.txt 192.168.159.128::test/06.txt
sending incremental file list
20171206.txt
1128 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 1204 bytes received 27 bytes 2462.00 bytes/sec
total size is 1128 speedup is 0.92
同步成功之后会在目标服务器上的path路径中找到同步的文件。
linux系统日志
-
/var/log/messages
除非服务有单独定义日志,否则所有日志都在这个文件里面。
-
/etc/logrotate.conf
日志切割配置文件
-
/var/log/dmesg
系统启动日志
- /var/log/scure
安全日志,会显示用户登录的信息。
dmesg 命令
dmesg 命令用于显示开机信息。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
- dmesg -c:清除日志(日志在系统重启会重新生成)
-
dmesg -n:指定记录信息的层级
- /var/log/dmesg 记录系统启动的信息。
last 命令
last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。/var/log/wtmp 文件是一个二进制文件,不能cat。
lastb 命令
lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取/var/log/btmp文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。
服务器被暴力破解,这个日志中就会有很多记录。
screen 工具 (虚拟终端)
系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。
- 安装screen工具:yum install -y screen
-
将一个任务在后台
nohup 命令 >[日志文件] 2>[日志文件] &
将命令放到后台执行,正确输出和错误输出放到不通的日志文件中。
- screen 直接回车进入虚拟终端
- ctral a组合键再按d退出虚拟终端,但不是结束
- screen -ls查看虚拟终端列表
- screen -r id或别名进入指定的终端
- screen -S 给虚拟终端起个别名