日常运维(4)

内容摘要

  • rsync工具介绍
  • rsync常用选项
  • rsync通过ssh同步
  • rsync通过服务同步
  • linux系统日志
  • screen工具

一、rsync工具介绍(数据备份)

rsync不仅可以远程同步数据,而且还可以本地同步数据,它不同于cp或scp,不会覆盖以前的数据(如果数据已存在),而是先判断依据存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

  • rsync的命令格式:
  1. rsync [OPTION] SRC DEST      本地同步
  2. rsync [OPTION] SRC [USER@]HOST: DEST     从本地数据同步到远程目录
  3. rsync [OPTION] [USER@]HOST:SRC  DEST     从远程目录同步数据到本地
  4. rsync [OPTION] [USER@]HOST::SRC  DEST    从远程目录同步数据到本地,验证方式不同
  5. 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选项。使同步软链接文件时,目标文件会复制软链接的源文件。如图:

日常运维(4)_第1张图片

  • --delte选项,删除目标中源没有的文件。如图:

日常运维(4)_第2张图片

  • --exclude选项。同步时过滤掉指定的文件。

日常运维(4)_第3张图片

  • -P选项,显示同步的过程。如图:

日常运维(4)_第4张图片

  • -u 加上该选项后,如果DEST中的文件比SRC新,则不同步。如图:

日常运维(4)_第5张图片

三、rsync通过ssh同步

  • 从本地数据同步到远程目录:  rsync [OPTION] SRC [USER@]HOST: DEST     如图:

日常运维(4)_第6张图片

  • 远程同步时指定端口,如图:

四、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

日常运维(4)_第7张图片

  • 启动服务:rsync --daemon
  • 使用命令 ps aux | grep rsync 查看服务是否正常启动。(当进程未正常启动时,可以检查配置文件是否填写正确,如配置的ip地址是否正确。)
  • 使用命令 netstat -lnp  查看指定端口是否在监听装填。
  • 使用 telnet 192.16229.128 873   查看指定ip端的端口是否能够连通。(退出方式:ctrl + ]  再输入 quit )

日常运维(4)_第8张图片

  • 若还是无法使用,可使用命令iptables -nvL查看firewalld设置,并尝试使用命令 systemctl stop firewalld 关闭两台服务同步的机器的firewalld防火墙。

  • 服务同步命令:rsync -avP /tmp/test.txt 192.168.229.128::test/aming.txt
  1. 符号 :: 是服务同步的标志
  2. test 为rsync.conf 中设置的模块名。(即代表path处所设置的路径)

  • 配置文件中的设置及定义:

日常运维(4)_第9张图片

日常运维(4)_第10张图片

  • 将默认端口873更改为8730后操作,如图:

日常运维(4)_第11张图片

  • 此时使用命令需添加指定端口: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 文件,格式为   用户名:密码   ,如图:

  • 将/etc/rsyncd.passwd文件权限更改为600 (未设置,会导致报错)
  • 连接服务端时添加用户名: rsync -avP --prot 8730 [email protected]::test/aming.txt /tmp/test.txt    (@前即为设置的用户名)
  • 当每天同步文件需要输入密码过于繁杂操作不变时,可在客户端设置一个密码文件,文件内容只需填写密码即可,随后也更改权限为600。并使用一下命令 :rsync -avPL --port 8730 --password-file=/etc/rsync_passwd [email protected]::test /tmp/111/     其中 --password-file=  即表示指定你设置的那个密码文件的路径

五、Linux系统日志

很多的错误只会保存在日志中,并不会直接显示在屏幕上。

  • 系统总的日志:/var/log/messages    (没有定义单独目录的日志到会保存在这个日志中)
  • logrotate 服务是为了防止日志无限制的增加采用的一个切割机制。
  • /etc/logrotate.conf 下保存有logrotate的配置文件。

日常运维(4)_第12张图片

  • logrotate的使用详解可参考:https://my.oschina.net/u/2000675/blog/908189
  • 硬件相关日志命令: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        (也可以使用名称)

日常运维(4)_第13张图片

  1. 自定义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目录中。常见的日志文件有:

  1. /var/log/messages:这个文件相当重要,几乎系统发生的所有错误信息或重要信息都会记录在这个文件中,包含系统启动时的引导消息及系统运行时的其他状态消息。
  2. /var/log/secure:记录系统的安全信息,如ssh、ftp、pop3
  3. /var/log/dmesg:记录系统在启动时核心检测过程所生产的各项信息
  4. /var/log/lastlog:记录系统上所有用户最后一次登录系统的信息,lastlog命令就是利用该文件的内容来显示数据的。
  5. /var/log/wtmp:记录用户登录系统及退出系统的信息,该文件是经过处理的,无法直接查看,可以使用相关命令来查看,如last和ac命令
  6. /var/log/boot.log:记录守护进程启动和停止相关的日志信息
  7. /var/log/faillog:记录登录失败时的用户信息
  8. /var/log/cron:记录与定时任务crontab相关的日志信息
  9. /var/log/httod/,/var/log/news/,/var/log/samba/*:各个服务的日志文件,记录各自的服务产生的日志信息
  • syslogd服务可以帮助我们主动收集到设备的各种信息,并将其保存在服务器上,当出现问题时可以省去手动收集信息的麻烦,方便快捷的从syslogd服务中读取各种信息进行分析排错。
  • 在centos7中已经用rsyslogd取代了syslogd。rsyslod是加强版的syslogd,且完美兼容syslogd。
  • rsyslogd的主要配置文件:/etc/rsyslog.conf

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

你可能感兴趣的:(笔记)