GVKun编程网logo

Rsync 工具介绍、Linux 系统日志 | screen 工具(rsync日志文件)

21

这篇文章主要围绕Rsync工具介绍、Linux系统日志|screen工具和rsync日志文件展开,旨在为您提供一份详细的参考资料。我们将全面介绍Rsync工具介绍、Linux系统日志|screen工具

这篇文章主要围绕Rsync 工具介绍、Linux 系统日志 | screen 工具rsync日志文件展开,旨在为您提供一份详细的参考资料。我们将全面介绍Rsync 工具介绍、Linux 系统日志 | screen 工具的优缺点,解答rsync日志文件的相关问题,同时也会为您带来0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具、10.28 rsync工具介绍、10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步、10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步的实用方法。

本文目录一览:

Rsync 工具介绍、Linux 系统日志 | screen 工具(rsync日志文件)

Rsync 工具介绍、Linux 系统日志 | screen 工具(rsync日志文件)

  • 目录
  • 1.rysnc 工具介绍
  • 2.rsync 通过 ssh 同步
  • 3.rsync 通过服务同步
  • 4.Linux 系统日志
  • 5.screen 工具
  • 拓展

 

1.rysnc 工具介绍

rsync linux 的一个文件同步工具;同步文件的命令格式

[root@localhost ~]# rsync -av /etc/passwd /root/grep/1.txt
sending incremental file list
passwd

sent 1,100 bytes  received 35 bytes  2,270.00 bytes/sec
total size is 1,008  speedup is 0.89

rsync 可以同步两台不同的服务器文件;格式为 rsync [选项] user@host: 目标目录

[root@localhost ~]# rsync -av /etc/passwd root@192.168.1.197:/root/grep/2.txt
The authenticity of host ''192.168.1.197 (192.168.1.197)'' can''t be established.
ECDSA key fingerprint is 47:5e:33:c6:25:5d:87:55:cc:e8:7b:49:a2:e0:99:5a.
Are you sure you want to continue connecting (yes/no)? yes   
Warning: Permanently added ''192.168.1.197'' (ECDSA) to the list of known hosts.
root@192.168.1.197''s password: 
sending incremental file list
passwd

sent 1,100 bytes  received 35 bytes  22.93 bytes/sec
total size is 1,008  speedup is 0.89

1.1rsync 常用选项

rsync 常用选项

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

同步目录

[root@localhost ~]# rsync -av /root/grep/ /tmp/111_dest/
sending incremental file list
created directory /tmp/111_dest
./
1.txt
2.txt
test.txt

sent 3,263 bytes  received 112 bytes  6,750.00 bytes/sec
total size is 3,024  speedup is 0.90

不同步指定格式的文件

[root@localhost ~]# rsync -avL  --exclude "*.txt" /root/grep/ /tmp/111_dest
sending incremental file list
./

sent 47 bytes  received 19 bytes  132.00 bytes/sec
total size is 0  speedup is 0.00

查看文件传输过程中的速度

[root@localhost ~]# rsync -avP /root/grep/ /tmp/111_dest
sending incremental file list
1.txt
          1,008 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=2/4)
2.txt
          1,008 100%  984.38kB/s    0:00:00 (xfr#2, to-chk=1/4)
test.txt
          1,008 100%  984.38kB/s    0:00:00 (xfr#3, to-chk=0/4)

sent 3,260 bytes  received 73 bytes  6,666.00 bytes/sec
total size is 3,024  speedup is 0.91

保留目录文件中的文件不做替换加 - u 选项。

 

2.rsync 通过 ssh 同步

另一台机器也要安装 rsync,否则会报错。

[root@localhost ~]# rsync /etc/passwd 192.168.246.128:/tmp/xiaoqi.txt
root@192.168.246.128''s password: 

当对方不是使用 22 端口时需要指定端口

[root@localhost ~]# rsync -avP -e "ssh -p 22" /etc/passwd 192.168.246.128:/tmp/te
st.txt
root@192.168.246.128''s password: 
sending incremental file list
passwd
            846 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=0/1)

sent 937 bytes  received 35 bytes  277.71 bytes/sec
total size is 846  speedup is 0.87

 

3.rsync 通过服务同步

需要编辑文件 /etc/rsyncd.conf

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.7.77
[test]
path=/root/rsync
use chroot=ture
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
host allow=192.168.7.7
-- INSERT --

可以把 path 的目录放在 tmp 下,方便操作。修改权限为 777

[root@localhost ~]# mkdir /tmp/rsync
[root@localhost ~]# chmod 777 /tmp/rsync/
[root@localhost ~]# ll -d /tmp/rsync/
drwxrwxrwx. 2 root root 6 619 11:07 /tmp/rsync/

启动并检查服务是否正常启动

[root@localhost ~]# vi /etc/rsyncd.conf 
[root@localhost ~]# rsync --daemon
[root@localhost ~]# ps aux |grep rsync
root       1253  0.0  0.0 114740   564 ?        Ss   16:55   0:00 rsync --daemon
root       1257  0.0  0.0 112720   984 pts/0    R+   16:55   0:00 grep --color=auto rsync

同步一个文件报错,检查是否网络不通

[root@localhost ~]# rsync -avP /tmp/test/ 192.168.246.128::test/test-2
rsync: failed to connect to 192.168.246.128 (192.168.246.128): No route to host (113)
rsync error: error in socket IO (code 10) at clientserver.c(125) [sender=3.1.2]
[root@localhost ~]# ping 192.168.246.128
PING 192.168.246.128 (192.168.246.128) 56(84) bytes of data.
64 bytes from 192.168.246.128: icmp_seq=1 ttl=64 time=0.394 ms
64 bytes from 192.168.246.128: icmp_seq=2 ttl=64 time=0.247 ms
^C

测试端口是否可通

[root@local ~]# telnet 192.168.246.128 873
Trying 192.168.246.128...
telnet: connect to address 192.168.246.128: No route to host

关闭 firewalld 服务,通信正常,使用 ^] 退出。

[root@localhost ~]# telnet 192.168.246.128 873
Trying 192.168.246.128...
Connected to 192.168.246.128.
Escape character is ''^]''.
@RSYNCD: 31.0
^^] 
@ERROR: protocol startup error
Connection closed by foreign host.

 

[root@local ~]# rsync -avP /tmp/test/ 192.168.246.128::test/test-2
sending incremental file list
./

sent 47 bytes  received 19 bytes  6.29 bytes/sec
total size is 0  speedup is 0.00

同步成功
[root@localhost ~]# ls /tmp/rsync/
test-2

反向同步

[root@local ~]# rsync -avP /tmp/test/ 192.168.246.128::test/test-2
sending incremental file list
./

sent 47 bytes  received 19 bytes  6.29 bytes/sec
total size is 0  speedup is 0.00
[root@localhost ~]# rsync -avP  192.168.246.128::test/test-2  /tmp/123.txt
receiving incremental file list
test-2/

sent 28 bytes  received 60 bytes  8.38 bytes/sec
total size is 0  speedup is 0.00
[root@localhost ~]# ls /tmp
123.txt
systemd-private-64c8478745b1433880c879ecc4d01d62-chronyd.service-G33Izy
systemd-private-64c8478745b1433880c879ecc4d01d62-vgauthd.service-uxgyiH
systemd-private-64c8478745b1433880c879ecc4d01d62-vmtoolsd.service-X5TuIA
test

 

rsyncd.conf 配置文件详解

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

log file:指定日志文件。

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

address:指定启动 rsync 服务的 ip。加入你的机器有多个 ip,就可以指定其中一个启动 rsyncd 服务,如果不指定该参数,默认是在所有 ip 上启动。

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

path:指定数据存放路径。

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

--port  也可以指定端口同步

[root@local ~]# rsync -avP  --port 873 192.168.246.128::test/test-2  /tmp/1234.txt
receiving incremental file list
test-2/

sent 28 bytes  received 60 bytes  8.38 bytes/sec
total size is 0  speedup is 0.00
[root@localhost ~]# ls /tmp
1234.txt

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

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

list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为 ture 则列出,false 则隐藏。

[root@local ~]# rsync   --port 873 192.168.246.128::
test  

uid/gid:指定传输文件时以哪个用户 / 组的身份传输。

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

[root@localhost ~]# vim /etc/rsyncd.conf 
[root@localhost ~]# vim /etc/rsyncd.passwd
[root@localhost ~]# vim /etc/rsyncd.conf 
[root@localhost ~]# chmod 600 /etc/rsyncd.passwd

[root@local ~]# rsync -avP  test@192.168.246.128::test/test-2  /tmp/1.txt
Password: 
receiving incremental file list
test-2/

sent 28 bytes  received 60 bytes  25.14 bytes/sec
total size is 0  speedup is 0.00

secets file:指定密码文件,该参数联通上面的参数如果不指定,则不适用密码验证。改密码文件的权限一定要是 600. 格式:用户名:密码

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

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

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

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

权限已修改,还是报错!!!

[root@xiaoqi ~]# rsync -avL test@192.168.246.128::test/test1/ /tmp/test8/ --password-file=/etc/rsync_pass.txt
rsync: could not open password file /etc/rsync_pass.txt: No such file or directory (2)
rsync error: syntax or usage error (code 1) at authenticate.c(187) [Receiver=3.1.2]

[root@localhost ~]# ll !$
ll /etc/rsync_pass.txt
-rw-------. 1 root root 7 6  19 11:58 /etc/rsync_pass.txt

 

4.Linux 系统日志

当服务无法启动时可以看报错信息,再看一下日志中的一些信息。

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

[root@chenshi ~]# cat /var/log/messages
.
.
.
Jun 19 12:20:01 localhost systemd: Starting Session 1128 of user root.
Jun 19 12:30:01 localhost systemd: Started Session 1129 of user root.
Jun 19 12:30:01 localhost systemd: Starting Session 1129 of user root.
Jun 19 12:40:01 localhost systemd: Started Session 1130 of user root.
Jun 19 12:40:01 localhost systemd: Starting Session 1130 of user root.
Jun 19 12:50:01 localhost systemd: Started Session 1131 of user root.
Jun 19 12:50:01 localhost systemd: Starting Session 1131 of user root.

占用并不大的原因是因为系统有一个日志切割机制,系统会自动切割日志(logrotate 服务)

[root@chenshi ~]# du -sh !$
du -sh /var/log/messages
152K	/var/log/messages

[root@chenshi ~]# ls !$*
ls /var/log/messages*
/var/log/messages  /var/log/messages-20180617

dmesg 命令 硬件相关的日志,保存在内存中

/var/log/demsg 日志

[root@chenshi ~]# head -n5 /var/log/dmesg
[    0.000000] microcode: microcode updated early to revision 0x29, date = 2013-06-12
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Initializing cgroup subsys cpuacct
[    0.000000] Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016

last 查看正确的登录历史,调用的是 /var/log/wtmp 文件

[root@chenshi ~]# last
root     pts/0        192.168.1.187    Tue Jun 19 12:57   still logged in   
root     pts/0        192.168.1.187    Tue Jun 19 10:41 - 12:57  (02:16)    
root     pts/0        180.170.85.123   Fri Jun 15 16:43 - 16:48  (00:05)    
root     pts/0        192.168.1.187    Fri Jun 15 09:20 - 14:03  (04:42)    
root     pts/0        180.170.85.123   Wed Jun 13 19:52 - 22:01  (02:09)    
root     pts/0        192.168.1.187    Wed Jun 13 17:27 - 17:50  (00:23)    
root     pts/0        192.168.1.195    Wed Jun 13 10:34 - 15:41  (05:06)    
root     pts/0        180.170.85.123   Tue Jun 12 22:25 - 22:51  (00:26)    
root     pts/0        192.168.3.250    Tue Jun 12 15:26 - 17:58  (02:31)    
reboot   system boot  3.10.0-514.el7.x Tue Jun 12 23:26 - 13:15 (6+13:49)   
root     pts/1        gateway          Tue Jun 12 14:57 - 14:57  (00:00)    
root     pts/1        gateway          Tue Jun 12 14:40 - 14:45  (00:05)    
root     pts/0        192.168.3.250    Tue Jun 12 14:39 - down   (00:44)    
root     tty1                          Tue Jun 12 14:34 - 14:41  (00:06)    
reboot   system boot  3.10.0-514.el7.x Tue Jun 12 22:34 - 15:24  (-7:-9)    
root     tty1                          Tue Jun 12 13:35 - 13:40  (00:04)    
reboot   system boot  3.10.0-514.el7.x Tue Jun 12 21:34 - 13:40  (-7:-54)   

wtmp begins Tue Jun 12 21:34:59 2018

lastb 命令用来查看登录失败的用户,调用的是 /vat/log/btmp

[root@chenshi ~]# lastb
root     ssh:notty    192.168.1.197    Fri Jun 15 10:23 - 10:23  (00:00)    
root     ssh:notty    192.168.1.197    Fri Jun 15 10:23 - 10:23  (00:00)    

btmp begins Fri Jun 15 10:23:13 2018

系统安全日志 /var/log/secure

[root@chenshi ~]# cat /var/log/secure
Jun 19 10:41:12 localhost sshd[28057]: Accepted password for root from 192.168.1.187 port 55791 ssh2
Jun 19 10:41:12 localhost sshd[28057]: pam_unix(sshd:session): session opened for user root by (uid=0)
Jun 19 12:57:52 localhost polkitd[494]: Registered Authentication Agent for unix-process:28189:59588869 (system bus name :1.2282 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Jun 19 12:57:52 localhost polkitd[494]: Unregistered Authentication Agent for unix-process:28189:59588869 (system bus name :1.2282, object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8) (disconnected from bus)
Jun 19 12:57:53 localhost sshd[28057]: error: Received disconnect from 192.168.1.187: 0:
Jun 19 12:57:53 localhost sshd[28057]: pam_unix(sshd:session): session closed for user root
Jun 19 12:57:55 localhost sshd[28216]: Accepted password for root from 192.168.1.187 port 53086 ssh2
Jun 19 12:57:55 localhost sshd[28216]: pam_unix(sshd:session): session opened for user root by (uid=0)

 

5.screen 工具

screen 工具是为了让一个任务不意外中断

nohup command & 把任务丢到后台,就算终端断开任务依旧在执行。

screen 命令,ctrl+A D 退出终端

[root@chenshi ~]# screen 
[detached from 28344.pts-0.chenshi]

列出终端

[root@chenshi ~]# screen -ls
There is a screen on:
	28344.pts-0.chenshi	(Detached)
1 Socket in /var/run/screen/S-root.

重新进入终端

[root@chenshi ~]# screen -r 28344
[screen is terminating]

杀死 screen 直接输入 exit

screen -S 可以指定 screen 名字。

[detached from 28363.xiaoqi]
[root@chenshi ~]# screen -ls
There is a screen on:
	28363.xiaoqi	(Detached)
1 Socket in /var/run/screen/S-root.

screen -r 名称可以进入 screen

[root@chenshi ~]# screen -r xiaoqi

 

扩展
1. Linux 日志文件总管 logrotate http://linux.cn/article-4126-1.html
2. xargs 用法详解 http://blog.csdn.net/zhangfn2011/article/details/6776925

 

0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具

0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具

 

4 月 20 日任务:
10.28 rsync 工具介绍
10.29/10.30 rsync 常用选项
10.31 rsync 通过 ssh 同步
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

 

 

rsync 的使用场景

日志切割工具 logrotate
https://linux.cn/article-4126-1.html

xargs
https://blog.csdn.net/gb4215287/article/details/78037520

 

 

1、rsync 工具介绍

Linux 系统下有很多数据备份工具,常用的是 rsync, 从字面意思理解为 remote sync (远程同步)。rsync 不仅可以远程同步数据(类似 scp),而且可以本地同步数据(类似于 cp),但不同 cp 或者 scp 的一点是,它不会覆盖以前的数据 (如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

rsync 是一款快速且功能非常多的文件复制工具。它可以在本地复制,通过任何远程 shell 或从另一台主机复制到 / 从远程 rsync 守护进程。它提供了大量的选项控制其行为的每个方面并允许非常灵活指定要复制的文件集。它是著名的其增量转 换算法,可减少发送的数据量通过发送只有来源之间的差异在网络上文件和目标中的现有文件。rsync 很广泛用于备份 和镜像以及作为改进的复制命令日常使用。

 

安装 rsync     yum install -y rsync

 

rsync -av /etc/passwd/tmp/1.txt       把 /etc/passwd 拷贝到 tmp / 下并改名叫 1.txt

上面命令中:
a 参数中包含了很多选项
v 查看到可视化过程;查看到发送了多少字节;多少字节每秒;文件一共有多大;速度是多少

 

rsync -av /etc/passwd root@192.168.86.31:/tmp/1.txt        远程复制,输入用户的密码后,可以拷贝

这里要求远程的机器也必须按照 rsync, 需要验证密码是因为这里没有做两机互联

 

rsync 格式  

rsync [OPTION] … SRC   DEST    本机的

rsync [OPTION] … SRC   [user@]host:DEST  

rsync [OPTION] … [user@]host:SRC   DEST  

rsync [OPTION] … SRC   [user@]host::DEST  

rsync [OPTION] … [user@]host::SRC   DEST

OPTION 是选项 (a,v),SRC 是源文件或目录,DEST 是目标目录或者文件;[USER@] host 是远程服务器,host 代表 IP,[USER@] 可以省略,如果不写用户名,默认会以当前终端的用户执行

 

2、 rsync 常用选项

-a 包含 - r t p l g o D 参数选项
 -r 同步目录时要加上,类似 cp 时的 - r 选项
 -v 同步时显示一些信息,让我们知道同步的过程
 -l 保留软连接,若是拷贝的原目录里面有一个软链接文件,那这个软链接文件指向到了另外一个目录 下。在加上 - l, 它会把软链接文件本身拷贝到目标目录里面去
 -L 加上该选项后,同步软链接时会把源文件给同步,(可以把软连接所指向的源文件拷贝过去)
 -p 保持文件的权限属性
 -o 保持文件的属主(如果 A 是 www 用户所有者,过去 B 一样是 www 用户,如果 B 没有 www 用户,会显示成数字,有 user1 的话就显示成 user1)
 -g 保持文件的属组
 -D 保持设备文件信息,/dev/sdb1 这样的设备文件有它的特殊性,如果不加 - D 可能拷贝过去就是一个 非常普通的文件,不能当设备来用
 -t 保持文件的时间属性
 --delete 删除 DEST(目标目录)中 SRC(源目录)没有的文件
 --exclude 过滤指定文件,如 --exclude “logs” 会把文件名包含 logs 的文件或者目录过滤掉,不同步。可以写多个 --exclude
 -P 显示同步过程,比如速率,比 - v 更加详细
 --progress 同 - P 功能一样
 -u 加上该选项后,如果 DEST(目标目录)中的文件比 SRC(源目录里的文件)新,则不同步
 -z 传输时压缩
 常用选项较多,常用的有:a,-v,-z,--delete 和 --exclude

123 目录作为源,tmp 做目标目录

 rsync -av /root/123//tmp/123_dest/   同步一个目录,把 root 下的 123 目录同步到 tmp 下并改名为 123_dest

 rsync -avL --delete /root/123//tmp/123_dest/          --delete 删除多余的文件

 rsync -avP  /root/123//tmp/123_dest/            P 显示同步过程

3、rsync 通过 ssh 同步

rsync 通过 ssh 方式同步,从 A 机器到 B 机器,通过 ssh 的方式去传输

rsync -av test1/ 192.168.86.31:/tmp/test2/                推文件,192.168.86.31 是目标 IP,并且这台机器也需要安装 rsync

rsync -avP 192.168.86.31:/tmp/test2/  /tmp/test1/    拉文件,把远程文件拉回到本机

如果对方机器的端口不是 22:

rsync -av -e "ssh -p 22" test1/ 192.168.86.31:/tmp/test2/      (ssh -p 22) 是一个命令指定端口,可以连接对方的指定端口

ssh -p 192.168.86.31  也可以这样去连接对方机器

4、rsync 通过服务同步

rsync 通过服务的方式同步  ,默认端口是 873

要编辑配置文件 /etc/rsyncd.conf  

启动服务 rsync --daemon  

格式:rsync -av /root/123/ 192.168.228.31::test/tobe.txt   两个 ::test    //test 表示 [test] 模块名路径 /tmp/rsync

 

rsyncd.conf 样例,把下列内容放到 /etc/rsyncd.conf 配置文件中
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.86.3
[test]                                //[test] 模块名
path=/tmp/rsync           // 目录为实验目录 /tmp/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.86.31

然后 rsync --daemon 启动服务,通过 ps aux |grep rsync 查看服务是否启动

netstat -lntp        查看监听的端口是 873,如果不写监听的 IP,就会绑定 0.0.0.0 全部网段,全部 IP 为 873

 mkdir /tmp/rsync  创建实验目录

chmod 777 /tmp/rsync/  更改权限

yum install -y telnet   安装 telnet

telnet 192.168.228.31 873  检测端口是否通畅,下方的端口不通

关闭 firewalld        

systemctl stop firewalld.service

在 B 机器上给服务器写文件

rsync -av /root/123/ 192.168.228.3::test/tobe.txt

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 或者网段,如果是多个,中间用空格隔开。

 use chroot=true|false 当有软链接,需要给其定义为 false; 

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

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

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

 

第一步、在服务端,创建一个软连接

第二步、修改配置文件  vim /etc/rsyncd.conf

第三步、在另一个客户端同步 test 模块
rsync -avLP  192.168.176.31::test//tmp/test/        从服务的传输到 test 目录

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

secrets file:指定密码文件

5、Linux 系统日志

曰志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等,可以通过他来检查错误发生的原因。日志的主要功能是审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。

 

/var/log/messages   

系统日常日志 /var/log/messages 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态 消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为 root 以及用 户自定义安装的软件 (apache) 的日志也会在这里列出。

在查看曰志的时候,会发现曰志自动切割了 ls /var/log/messages*

 

linux 系统中有一个 logrotate 服务,会自动切割日志,防止无限制的增加。

logrotate 用来切割日志    /etc/logrotate.conf 日志切割配置文件

查看  cat /etc/logrotate.d/syslog

syslog 文件会为 cron, maillog, messages, secure, spooled 这几个日志进行切割
messages 日志是由 syslogd 服务决定的,所以 kill -HUP 就会重新加载这个日志 
还有一个脚本,shell 命令行,在把日志切割后(挪走),改名字生成新的日志
Linux 系统有一个特点,一个服务写一个文件的时候,并不是按照文件名去写的,而是根据 inode 来写的

 

dmesg 命令和 dmesg 日志
dmesg 命令,会把系统硬件相关的日志列出来

这个日志是保存在内存中的,并不是一个文件;假如你的网卡有问题了,硬盘损坏了,都会记录在这个日 志中
dmesg -c 清空当前日志;但是一重启这个系统,又会生成这些日志

 

/var/log/dmesg 日志

注意:这个日志文件和 dmesg 命令没有任何关联;它是系统启动的一个日志,记录的信息

 

last 命令,调用的文件 /var/log/wtmp

last 命令,查看你正确的登陆历史

它调用的文件 /var/log/wtmp。
里面记录的是谁,在哪里,来源 IP, 时间,登录的时长都会有记录 
 /var/log/wtmp 日志是一个二进制文件,不能直接 cat 查看,只能用 last 命令去查看

 

lastb 命令查看登录失败的用户,对应的文件时 /var/log/btmp

对应的文件时 /var/log/btmp 日志 
 /var/log/btmp 也是二进制文件,不能直接 cat 的

 

安全日志

/var/log/secure   登陆操作系统,验证成功会在这里记录要给日志,失败也会记录

6、screen 工具   虚拟终端

有时候我们需要执行一个命令或脚本,需要几小时甚至几天,在这个过程中,如果中途断网或者出现有其他意外情况怎么办,当然也可以把命令或者脚本放到后台运行,不过不保险,无法在屏幕上随时查看,这就要用到虚拟终端 screen。
单个 screen, 建立、退出

首先安装 screen 包   : yum install -y screen

输入 screen 直接回车就进入了虚拟终端

ctrl+a ,再按 d, 退出虚拟终端,但不是结束

screen -ls   查看已打开的 screen 会话

退出后,如果想再次登入某个 screen 会话,可以使用的是 screen -r  id  进入指定的终端

exit, 可以直接退出 screen 会话

如果有多个 screen 会话,可以通过 id 进入指定的会话

如果 screen 太多,却不知道其功能作用,需要命令和定义

screen -S "test_screen" 定义一个自定义的名字 - S

 

10.28 rsync工具介绍

10.28 rsync工具介绍

Linux文件同步工具-rsync

  • rsync -av /etc/passwd /tmp/1.txt
  • rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt
  • rsync格式
  • rsync [OPTION] … SRC DEST
  • rsync [OPTION] … SRC [user@]host:DEST
  • rsync [OPTION] … [user@]host:SRC DEST
  • rsync [OPTION] … SRC [user@]host::DEST
  • rsync [OPTION] … [user@]host::SRC DEST

rsync工具介绍

  • 安装rsync包——>yum install -y rsync
  • rsync命令,它是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。
    • 比如,有A、B目录,想要把A目录里面的数据拷贝到B目录下去,并且A目录中数据一直在更新
    • 需求,每小时拷贝一次
    • 实现,可使用rsync命令
      • 优势:实现增量的拷贝,并支持远程
  • rsync -av /etc/passwd /tmp/1.txt //把/etc/passwd文件拷贝到/tmp下并改名为1.txt
    • -a参数中包含了很多选项,后面会详细介绍
    • -v查看到可视化过程
      • 查看到发送了多少个字节
      • 多少字节每秒
      • 文件一共有多大
      • 速度是多少

rsync命令

[root@hanfeng ~]# rsync -av /etc/passwd /tmp/1.txt    //把/etc/passwd文件拷贝到/tmp下并改名为1.txt 
sending incremental file list
passwd

sent 957 bytes  received 31 bytes  1976.00 bytes/sec
total size is 883  speedup is 0.89
[root@hanfeng ~]# 

rsync命令,远程命令同步/拷贝

-比如,拷贝到对方机器root用户下 - 然后在root后加IP,并用 : 冒号分开,再跟文件的根路径

- 并输入root用户的密码
  • rsync -av /etc/passwd root@192.168.202.130:/tmp/1.txt //将/etc/passwd文件拷贝到root用户192.168.202.130IP地址下,并用 : 冒号分开,再跟文件的根路径
[root@hanfeng ~]# rsync -av /etc/passwd root@192.168.202.130:/tmp/1.txt    //将/etc/passwd文件拷贝到root用户192.168.202.130IP地址下,并用 : 冒号分开,再跟文件的根路径
root@192.168.202.130''s password:         //这里写用户的密码
sending incremental file list

sent 31 bytes  received 12 bytes  0.43 bytes/sec
total size is 883  speedup is 20.53
[root@hanfeng ~]# 

rsync格式

  • rsync [OPTION] … SRC DEST
    • [OPTION]表示它的选项
    • SRC表示源目录
    • DEST表示目标目录,或者是目标文件
  • rsync [OPTION] … SRC [user@]host:DEST //拷贝到远程的服务器上去
    • user@可省略,那就会默认当前终端的用户
  • rsync [OPTION] … [user@]host:SRC DEST //先写远程的机器/目录,然后拷贝到本地的目录下
  • rsync [OPTION] … SRC [user@]host::DEST //这里的两个冒号,可以是目标,可以是源
  • rsync [OPTION] … [user@]host::SRC DEST

10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步

rsync远程同步 重点!重点!!重点!!!

例子
• rsync -av /etc/passwd /tmp/1.txt
• rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt

rsync格式
• rsync [OPTION] … SRC DEST
• rsync [OPTION] … SRC [user@]host:DEST
• rsync [OPTION] … [user@]host:SRC DEST
• rsync [OPTION] … SRC [user@]host::DEST
• rsync [OPTION] … [user@]host::SRC DEST


rsync常用选项

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


rsync = remote(远程) sync(同步)
使用之前需要安装rsync包

yum install -y rsync
[root@linux-128 ~]#  yum install -y rsync

需求:我要将A目录下的文件拷贝到B目录下(本机操作) 一般我们想到的是使用命令cp来拷贝,但是另外一个需求是:每一小时拷贝一次,如果文件比较大或者多,认为去操作就比较繁琐了,所以我们使用rsync命令来做 例子:

[root@linux-128 tmp]# rsync -av /etc/passwd  /tmp/rsync.txt
sending incremental file list
passwd

sent 1424 bytes  received 31 bytes  2910.00 bytes/sec
total size is 1350  speedup is 0.93

需求2:将A机器/tmp/rsync.txt文件拷贝到B机器192.168.88.129/tmp/目录下

拷贝的时候发下错误,是因为B机器上没有安装rsync,所以需要先安装一下

[root@linux-128 tmp]# rsync -av /tmp/rsync.txt root@192.168.88.129:/tmp/
sending incremental file list
rsync.txt

sent 1427 bytes  received 31 bytes  2916.00 bytes/sec
total size is 1350  speedup is 0.93

备注:这里命令也可以写成
rsync -av /tmp/rsync.txt 192.168.88.129:/tmp/ \如果B机器和A机器的当前用户一样,就可以不加root@,如果A机器当前用户是user1,你命令里面没有加B机器的用户名@,它就会报错
我们在B机器/tmp/目录下就可以看到了

[root@linux-129 ~]# ls /tmp/
rsync.txt
systemd-private-441df47e85a6457486521b5a6973cce1-vmtoolsd.service-b8vozP

rsync通过ssh方式同步

• rsync -av test1/ 192.168.133.132:/tmp/test2/ \A-B
• rsync -av 192.168.133.132:/tmp/test2/ /root/test1 \B-A

如果对方机器sshd端口不是22呢,所以我们就要指定对方机器的shhd端口了
• rsync -av -e "ssh -p 1122" test1/ 192.168.133.132:/tmp/test2/


rsync 通过服务的方式同步

• 要编辑配置文件/etc/rsyncd.conf • 启动服务rsync --daemon • 格式:rsync -av test1/ 192.168.133.130::module/dir/ 如果要用服务的方式同步,需要先启动rsync服务,然后编辑配置文件 vim /etc/rsyncd.conf 这里有个rsyncd.conf 样例:我们直接负责进去,修改一下配置

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.133.130   
[test]       \\指定模块名,里面内容自定义
path=/tmp/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
[root@linux-129 ~]# rsync -av /tmp/1.txt 192.168.88.129::test/test.txt
rsync: failed to connect to 192.168.88.129 (192.168.88.129): Connection refused (111)
rsync error: error in socket IO (code 10) at clientserver.c(122) [sender=3.0.9]

这里报错了:没有路由到远程=机器上去

[root@linux-129 ~]# ping 192.168.88.128   \\先 查看是IP是否通畅
PING 192.168.88.128 (192.168.88.128) 56(84) bytes of data.
64 bytes from 192.168.88.128: icmp_seq=1 ttl=64 time=2.66 ms
64 bytes from 192.168.88.128: icmp_seq=2 ttl=64 time=0.927 ms
[root@linux-129 ~]# telnet 192.168.88.129 837   \\用命令telnet来查看端口是否通的
-bash: telnet: 未找到命令 
[root@linux-129 ~]# yum install -y telnet   
[root@linux-129 ~]# telnet 192.168.88.128 837
Trying 192.168.88.128...
telnet: connect to address 192.168.88.128: No route to host  \\说明端口不通

遇到这种问题我们要检测一下是不是iptables的问题

[root@linux-129 ~]# systemctl stop firewalld  \\关闭将服务端和客户端的防火墙先关闭
[root@linux-129 ~]# telnet 192.168.88.128 873
Trying 192.168.88.128...
Connected to 192.168.88.128.                 \\这就表示通了
Escape character is ''^]''.
@RSYNCD: 30.0
^]                               \\按ctrl+]  然后输入quit退出
telnet> quit
Connection closed.
[root@linux-129 ~]# rsync -avP /tmp/1.txt 192.168.88.128::test/test.txt
Password:
@ERROR: auth failed on module test
rsync error: error starting client-server protocol (code 5) at main.c(1516) [sender=3.0.9]

这里有报错了,提示密码错误;因为我们在修改rsync配置文件的时候,有定义密码文件,我们将它先注释掉。

[root@linux-129 ~]# rsync -avP /tmp/1.txt 192.168.88.128::test/test.txt   
sending incremental file list
1.txt
        1372 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)

sent 1441 bytes  received 27 bytes  978.67 bytes/sec
total size is 1372  speedup is 0.93

这是从客户端同步数据到客户端

我们在从服务端将数据同步回来

[root@linux-129 ~]# rsync -avP  192.168.88.128::test/test.txt  /tmp/test.txt
receiving incremental file list
test.txt
        1372 100%    1.31MB/s    0:00:00 (xfer#1, to-check=0/1)

sent 45 bytes  received 1475 bytes  3040.00 bytes/sec
total size is 1372  speedup is 0.90

如果服务端rsync的端口是8730,客户端是没有开放这个端口,所以我们要指定端口 --port

[root@linux-129 ~]# rsync -avP --port 8730 192.168.88.128::test/test.txt  /tmp/test.txt
receiving incremental file list

sent 26 bytes  received 60 bytes  172.00 bytes/sec
total size is 1372  speedup is 15.95

ssh服务指定端口是--e "ssh -p 1122"

rsyncd.conf配置文件详解

• port:指定在哪个端口启动rsyncd服务,默认是873端口。
• log file:指定日志文件。
• pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。
• address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。
• []:指定模块名,里面内容自定义。
• path:指定同步数据存放的路径。
• use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。比如你要同步的文件里面有软连接,软连接的源地址在其他目录下,如果use chroot的值是true,那么你在同步的时候加上-L 想要将软连接的源文件同步过去的时候,它是会报错的同步失败,不加-L,它能同步成功,只是同步过的软链接是失效的。默认情况下chroot值为true,如果你的数据当中有软连接文件,阿铭建议你设置成false。 • max connections:指定最大的连接数,默认是0,即没有限制。如果有很多客户端都在重服务器上同步数据,给服务器带来压力,我们就可以设置这个最大连接数。
• read only ture|false:read只读,如果为true,则不能上传到该模块指定的路径下。
• list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。这里可用模块就是我们定义的[test];我们在::后面不加内容,它就会列出模块来,别人就知道这个模块,他会上传一些木马窃取信息,所以为了安全,设置成false

• uid/gid:指定传输文件时以哪个用户/组的身份传输。
• auth users:指定传输时要使用的用户名。
• secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码文件的权限一定要是600。格式:用户名:密码
• hosts allow:表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。192.168.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24

• 当设置了auth users和secrets file后,我们需要在服务端的/etc/rsyncd.passwd 文件写入用户名和密码格式(test:123123)客户端连服务端也需要用用户名密码了,

[root@linux-128 ~]# vim /etc/rsyncd.passwd
[root@linux-128 ~]# chmod 600 !$        \\设置权限,一定要设置权限
chmod 600 /etc/rsyncd.passwd

[root@linux-129 ~]# rsync -avP --port 8730 test@192.168.88.128::test/test.txt  /tmp/test.txt
Password:
receiving incremental file list

sent 54 bytes  received 101 bytes  34.44 bytes/sec
total size is 1372  speedup is 8.85

若不想在命令行中带上密码,可以在客户端上创建一个一个密码文件/etc/pass,这个密码文件格式和服务端设置的密码文件格式不一样,它只需要写入和服务端密码一样就行(123123)。

[root@linux-129 ~]# vim /tmp/pass
[root@linux-129 ~]# chmod 600 !$     \\设置权限,一定要设置权限
chmod 600 /tmp/pass
[root@linux-129 ~]# rsync -avP --port 8730 --password-file=/tmp/pass test@192.168.88.128::test/test.txt  /tmp/test.txt
receiving incremental file list

sent 54 bytes  received 101 bytes  310.00 bytes/sec
total size is 1372  speedup is 8.85

• rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass
• 其中/etc/pass内容就是一个密码,权限要改为600

总结:rsync远程同步分为通过ssh同步,和服务的方式同步
ssh方式同步:一个冒号
服务方式同步:: 2个冒号

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步

10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步

10.28 rsync工具介绍

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

rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt

rsync -av /tmp/1.txt root@192.168.188.128:/tmp/2.txt

rsync格式

rsync [OPTION] … SRC DEST 推文件

rsync [OPTION] … SRC [user@]host:DEST user可以省略, 省略则用当前终端用户身份同步, 如果对方机器没有该用户名则会报错

rsync [OPTION] … [user@]host:SRC DEST 从远程目录同步到本地 拉文件

rsync [OPTION] … SRC [user@]host::DEST 两个冒号

rsync [OPTION] … [user@]host::SRC DEST

进行远程同步时 必须远程机和本地机都有rsync工具才可以 yum install -y rsync

10.29/10.30 rsync常用选项

rsync常用选项

• -a 包含-rtplgoD

• -r 同步目录时要加上,类似cp时的-r选项

• -v 同步时显示一些信息,让我们知道同步的过程

• -l 保留软连接

• -L 加上该选项后,同步软链接时会把源文件给同步

• -p 保持文件的权限属性

• -o 保持文件的属主 // 如果目标机器没有源机器的用户名 ,则显示uid

• -g 保持文件的属组

• -D 保持设备文件信息

• -t 保持文件的时间属性

• --delete 删除DEST中SRC没有的文件 //很有用

• --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步 // 可支持写多个 --exclude

• -P 显示同步过程,比如速率,比-v更加详细

• -u 加上该选项后,如果DEST中的文件比SRC新,则不同步 //新 指的是mtime(编辑过)

• -z 传输时压缩

• R 如果目标目录不存在, 可以创建目标主机的级联路径

rsync -av /root/111 /tmp/111_dest/ 同步目录约定要加斜杠

10.31 rsync通过ssh同步

rsync通过ssh方式同步 //使用1个冒号

rsync -av test1/ 192.168.133.132:/tmp/test2/

要输入目标机器的密码 , 假设test2 已存在, 会把test1 里面的文件同步到test2中, 如果test2不存在, 则直接新建一个文件夹test2

rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/ //指定端口

关于Rsync 工具介绍、Linux 系统日志 | screen 工具rsync日志文件的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具、10.28 rsync工具介绍、10.28 rsync工具介绍 , rsync常用选项, rsync通过ssh同步、10.28 rsync工具介绍 10.29/10.30 rsync常用选项 10.31 rsync通过ssh同步等相关内容,可以在本站寻找。

本文标签: