这篇文章主要围绕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日志文件)
- 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日志文件)
- 目录
- 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 6月 19 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 工具
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工具介绍
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同步
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工具介绍
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同步等相关内容,可以在本站寻找。
本文标签: