内容摘要
- rsync工具介绍
- rsync常用选项
- rsync通过ssh同步
- rsync通过服务同步
- linux系统日志
- screen工具
一、rsync工具介绍(数据备份)
rsync不仅可以远程同步数据,而且还可以本地同步数据,它不同于cp或scp,不会覆盖以前的数据(如果数据已存在),而是先判断依据存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。
- rsync的命令格式:
- rsync [OPTION] SRC DEST 本地同步
- rsync [OPTION] SRC [USER@]HOST: DEST 从本地数据同步到远程目录
- rsync [OPTION] [USER@]HOST:SRC DEST 从远程目录同步数据到本地
- rsync [OPTION] [USER@]HOST::SRC DEST 从远程目录同步数据到本地,验证方式不同
- rsync [OPTION] SRC [USER@]HOST::DEST 从本地数据同步到远程目录,验证方式不同
[OPTION]=选项、SRC=源地址、DEST=目标地址、[user@]=用户名(如root@,可省略,省略时默认为当前用户)、HOST=ip地址。
二、rsync常用选项
- -a 包含-rtplgoD
- -r 同步目录时要加上,类似cp时的-r
- -v 同步时显示一些信息,让我们知道同步的过程
- -l 保留软链接
- -L加上该选项后,同步软链接时会把源文件给同步
- -p 保持文件的权限属性
- -o 保持文件的属组
- -g 保持文件的属组
- -D 保持设备文件信息
- -t 保持文件的时间属性
- --delte 删除DEST(目标目录)中SRC(源目录)没有的文件
- --exclud 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步。
- -P显示同步过程,比如速率,比-v更加详细
- -u 加上该选项后,如果DEST中的文件比SRC新,则不同步
- -z 传输时压缩
使用相关选项:
- -L选项,在使用时会覆盖-l选项。使同步软链接文件时,目标文件会复制软链接的源文件。如图:
- --delte选项,删除目标中源没有的文件。如图:
- --exclude选项。同步时过滤掉指定的文件。
- -P选项,显示同步的过程。如图:
- -u 加上该选项后,如果DEST中的文件比SRC新,则不同步。如图:
三、rsync通过ssh同步
- 从本地数据同步到远程目录: rsync [OPTION] SRC [USER@]HOST: DEST 如图:
- 远程同步时指定端口,如图:
四、rsync通过服务同步
rsync通过服务同步时,会监听一个端口,默认为873,这个端口可以自定义。开启服务同步时,客户端就可以通过端口和服务端同步。
- 使用服务同步前,要编辑配置文件/etc/rsyncd.conf(只有当编辑配置文件中的端口时才需要重启服务),内容如下:
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.133.130
[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.133.132 1.1.1.1 2.2.2.2 192.168.133.0/24
- 启动服务:rsync --daemon
- 使用命令 ps aux | grep rsync 查看服务是否正常启动。(当进程未正常启动时,可以检查配置文件是否填写正确,如配置的ip地址是否正确。)
- 使用命令 netstat -lnp 查看指定端口是否在监听装填。
- 使用 telnet 192.16229.128 873 查看指定ip端的端口是否能够连通。(退出方式:ctrl + ] 再输入 quit )
- 若还是无法使用,可使用命令iptables -nvL查看firewalld设置,并尝试使用命令 systemctl stop firewalld 关闭两台服务同步的机器的firewalld防火墙。
- 服务同步命令:rsync -avP /tmp/test.txt 192.168.229.128::test/aming.txt
- 符号 :: 是服务同步的标志
- 配置文件中的设置及定义:
- 将默认端口873更改为8730后操作,如图:
- 此时使用命令需添加指定端口:rsync -avP --prot 8730 192.168.229.128::test/aming.txt /tmp/test.txt
- 列出服务端的模块名:rsync --prot 8730 192.168.229.128:: (当配置文件中的list设置为false时则不显示模块名,该选项属于一个安全选项。)
- 当uid/gid 设置为一些权限较小的用户时,可能会导致无法同步 (如nobody 权限较小的一个系统用户)
- 设置auth users 和sercrets后,连接服务端时这需要使用用户名和密码,操作如下
- 修改/etc/rsyncd.passwd 文件,格式为 用户名:密码 ,如图:
- 连接服务端时添加用户名: rsync -avP --prot 8730 test@192.168.229.128::test/aming.txt /tmp/test.txt (@前即为设置的用户名)
- 当每天同步文件需要输入密码过于繁杂操作不变时,可在客户端设置一个密码文件,文件内容只需填写密码即可,随后也更改权限为600。并使用一下命令 :rsync -avPL --port 8730 --password-file=/etc/rsync_passwd test@192.168.229.128::test /tmp/111/ 其中 --password-file= 即表示指定你设置的那个密码文件的路径
五、Linux系统日志
很多的错误只会保存在日志中,并不会直接显示在屏幕上。
- 系统总的日志:/var/log/messages (没有定义单独目录的日志到会保存在这个日志中)
- logrotate 服务是为了防止日志无限制的增加采用的一个切割机制。
- /etc/logrotate.conf 下保存有logrotate的配置文件。
- logrotate的使用详解可参考:
- 硬件相关日志命令:dmesg
- 清空日志:dmesg -c
- 系统启动的日志文件:/var/log/dmesg (与命令dmesg无关)
- 查看正确的登录系统日志:last 这个命令调用的是/var/log/wtmp(无法直接cat)
- 查看错误的登录系统日志:lastb 这个命令调用的是/var/log/btmp(无法直接cat)
- 安全日志:/var/log/secure
六、screen 工具 ——虚拟终端
在一个脚本或进程长时间运行呢无法中断时使用的一个工具,可以防止因为突发事件导致的任务中断。
- 将任务放置后台运行(无法实时查看): nohup sh /usr/local/sbin/sleep.sh &
- 进入虚拟终端: screen
- 退出虚拟终端:在虚拟终端下使用 ctrl + a 然后按 d (并没有结束任务,仅仅只是退出来)
- 结束screen回话: ctrl+d,或者输入exit
- 列出所有screen回话:screen -ls
- 回到某个screen : screen -r id号 (也可以使用名称)
- 自定义screen会话名称:screen -S 自定义名称
七、扩展
- rsync工具介绍
Rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,同时可以对上传部分先进行压缩,因此rsync效率很高。rsync可以复制显示目录属性及文件,而且可以选择性地压缩及递归复制。但是rsync每次执行rsync命令都会遍历目标目录,如果文件数达到了一定规模,每次遍历就会消耗很多资源。
Rsync 可以搭配 rsh 或 ssh 甚至使用 daemon 模式。 Rsync server 会打开一个 873 的服务通道 (port) ,等待对方 Rsync 连接。连接时, Rsync server 会检查口令是否相符,若通过口令查核,则可以开始进行文件传输。第一次连通完成时,会把整份文件传输一次,下一次就只传送二个文件之间不同的部份。
Rsync 支持大多数的类 Unix 系统,无论是 Linux 、 Solaris 还是 BSD 上都经过了良好的测试。此外,它在 windows 平台下也有相应的版本,比较知名的有 cwRsync 和 Sync2NAS 。
- linux系统日志
Linux系统中会有很多的日志文件,这些文件可以帮助我们了解很多系统的重要事件。这些文件一般都存放在/var/log目录中。常见的日志文件有:
- /var/log/messages:这个文件相当重要,几乎系统发生的所有错误信息或重要信息都会记录在这个文件中,包含系统启动时的引导消息及系统运行时的其他状态消息。
- /var/log/secure:记录系统的安全信息,如ssh、ftp、pop3
- /var/log/dmesg:记录系统在启动时核心检测过程所生产的各项信息
- /var/log/lastlog:记录系统上所有用户最后一次登录系统的信息,lastlog命令就是利用该文件的内容来显示数据的。
- /var/log/wtmp:记录用户登录系统及退出系统的信息,该文件是经过处理的,无法直接查看,可以使用相关命令来查看,如last和ac命令
- /var/log/boot.log:记录守护进程启动和停止相关的日志信息
- /var/log/faillog:记录登录失败时的用户信息
- /var/log/cron:记录与定时任务crontab相关的日志信息
- /var/log/httod/,/var/log/news/,/var/log/samba/*:各个服务的日志文件,记录各自的服务产生的日志信息
- syslogd服务可以帮助我们主动收集到设备的各种信息,并将其保存在服务器上,当出现问题时可以省去手动收集信息的麻烦,方便快捷的从syslogd服务中读取各种信息进行分析排错。
- 在centos7中已经用rsyslogd取代了syslogd。rsyslod是加强版的syslogd,且完美兼容syslogd。
- rsyslogd的主要配置文件:/etc/rsyslog.conf
- 扩展
- Linux日志文件总管logrotate: http://linux.cn/article-4126-1.html