日常运维(三)

10.28 rsync工具介绍

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

rsync的安装命令为:yum install -y rsync。

rsync的命令格式:

rsync [选项] ... SRC DEST

rsync [选项] ... SRC [ USER@ ]HOST:DEST

rsync [选项] ... [ USER@ ]HOST: SRC DEST

rsync [选项] ... [ USER@ ]HOST::SRC DEST

rsync [选项] ... SRC [ USER@ ]HOST::DEST


10.29 rsync常用选项(上)

-a:归档模式,表示以递归的方式传输文件,并保持所有属性,等同于-rlptgoD。-a选项后面可以跟一个--no-OPTION,表示关闭-rlptgoD中的某一个,比如-a--no-l等同于-rptgoD。

-r:以递归的方式处理子目录。主要是针对目录来说的,如果单独传一个文件不需要加-r选项,但是传输目录时必须要加。

-v:打印一些信息,比如文件列表、文件数量等。

-l:保留软链接。

-L:表示像对待常规文件一样处理软链接。如果是SRC中有软链接文件,则加上该选项后,将会把软链接指向的目标文件复制到DST。

-p:保持文件权限。

-o:保持文件属主信息。

-g:保持文件属组信息。

-D:保持设备文件信息。

-t:保持文件时间信息。

--delete:删除DST中SRC没有的文件。

--exclude=PATTERN:指定排除不需要传输的文件,等号后面跟文件名,可以是万用字符模式(如*.txt)。

--progress:在同步的过程中可以看到同步的过程状态,比如统计要同步的文件数量、同步的文件传输速度等。

-u:表示把DST中比SRC还新的文件排除掉,不会覆盖。

-z:加上该选项,将会在传输过程中压缩。

常用的选项有-a、-v、-z、--delete和--exclude这几个。


10.30 rsync常用选项(下)

我们先建立一些目录和文件,然后对rsync的各个选项分别做详细介绍。

d625cecc47a9ed06a016f77c76ef8446808.jpg

使用-a选项:

458ba72d8021361e43336c842df7254f46f.jpg

从上图可见,我们本来想把test1目录直接复制成test2目录,可结果rsync却新建了test2目录,然后把test1放到了test2中。为了避免这样的情况发生,我们可以这样做:

bb53c7fb2bf2797096f820e2f507d5c2d36.jpg

这里加一个/就可以解决上面的问题,所以在使用rsync备份目录时,要养成加/的习惯。

我们知道-a选项等同于-rlptgoD,且-a还可以和--no-OPTIN一并使用。再来看看-l选项的作用:

0f8a8a4fe34e98610e9add8492aa66f5083.jpg

如上图可见,如果不使用-l选项,系统则不会复制软链接文件。

使用-L选项:

54109252db317a4fb4e5239a8dff403381f.jpg

如上图可见,加-L选项就可以把源目录中的软链接的目录文件复制到目的目录中。

使用-u选项:

我们先查看下test1/1和test2/1的创建时间,然后使用touch修改test2/1的创建时间,让test2/1比test1/1的创建时间晚一些。

38bc72db8d6d6a4a0db780e3460ee4265ca.jpg

然后不加-u选项进行同步:

7f2bd24cabd7aea584d222ee91892291905.jpg

此时,test2/1的创建时间还是和test1/1是一样的。下面加上-u选项:

a8610e0fede3aad9289c7a1a12148020325.jpg

如上图可见,加上-u选项后,不会再把test1/1同步为test2/1了。

使用--delete选项:

首先删除test1/123.txt,然后把test1/目录同步到test2/目录下:

9c5bacdb142e21e176a11332640f043281a.jpg

我们会发现,test2/目录并没有删除123.txt文件。

加上--delete选项后:

d8d27f4336854930ae950f1ba353f3e0fdb.jpg

此时,test2/目录下的123.txt文件也被删除了。

还有一种情况,如果在目录目录中增加了文件,而源目录中没有这些文件,同步时加上--delete选项后同样会删除新增的文件:

52a35c206b9a7a5d87498535615e8c8fe5b.jpg

使用--exclude选项:

9933d82413d9439971a5cb873882010694a.jpg

该选项还可以与匹配字符*一起使用:

97b1f4418af5260ca24cb385c6038cc6b52.jpg


10.31 rsync通过ssh同步

rsync [选项] ... SRC [ USER@ ]HOST:DEST

rsync [选项] ... [ USER@ ]HOST: SRC DEST

上面两种方式就是通过ssh的方式备份数据,通过ssh的方式,其实就是让用户登录到远程机器,然后执行rsync的任务:

6ae043eb9a0dd3a6a2be79d36cda3f99369.jpg

也可以使用第三种方式复制:

4104616db9212df961c475d2d141549f689.jpg


10.32 rsync通过服务同步(上)

这种方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器。

配置一台rsync服务器的方法:

在192.168.6.120主机上建立并配置rsync的配置文件/etc/rsyncd.conf,如下图所示:

3b48eab3a59bf1cd6b23dab1b8e03e6fbdc.jpg

参数的作用:

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

log file:指定日志文件。

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

address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。

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

path:指定数据存放的路径。

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

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

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

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

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

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

secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意,该密码文件的权限一定要是600。

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

编辑secrets file并保存后要赋予600权限,如果权限不对,则不能完成同步:

 

如果想开机ynfcrsyncd服务,请把/usr/bin/rsync --daemon --confg=/etc/rsyncd.conf写入/etc/rc.d/rc.local文件中。

 


10.33 rsync通过服务同步(下)

上面的例子中,都是要输入密码,这意味着我们不能写入脚本中自动执行。其实这种方式可以不用手动输入密码,有两实现方式。

(1)、指定密码文件

 

(2)、在rsync服务端不指定用户


10.34 Linux系统日志

日志记录了系统每天发生的事情,比如监测系统善、排查系统故障等。可以通过日志来检查错误发生的原因,或者受到攻击时攻击都留下的痕迹。

日志的主要功能是审计和监测,还可以实时地监测系统状态,监测和追踪侵入者等。

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

通常情况下,/var/log/messages是做故障诊断时首先要查看的文件。系统有一个日志轮询的机制,每星期切换一个日志,切换后的日志名字类似于messages-20181122,会存放在/var/log目录下面,连同messages一共有5上这样的日志文件。20181122是日期,表示日志切割的年月日,这是通过logrotate工具的控制来实现的,配置文件是/etc/logrotate.conf。

/var/log/messages是由rsyslogd这个守护进程产生的,如果停止这个服务,系统就不会产生/var/log/messages,所以不能停止这个服务。rsyslogd服务的配置文件为/etc/rsyslog.conf,这个文件定义了日志的级别。

 

命令dmesg可以显示系统的启动信息,如果某个硬件有问题,用这个命令也是可以看到的。

 

last命令用来查看登录Linux的历史信息:

93c78d23560255581bda7ea06e798b87009.jpg

last命令输出的信息实际上是读取了二进制日志文件/var/log/wtmp,只是这个文件不能直接使用cat、vim、head、tail等工具查看。

/var/log/secure也是和登录信息有关的日志文件。该日志文件记录验证和授权等方面的信息,比如ssh登录系统成功或失败时,相关的信息都会记录在这个日志里。


10.35 screen工具

screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的SSH连接窗口一样。

screen的安装命令如下:

yum install -y screen

在命令窗口中直接输入screen,就可以进入一个虚拟终端:

387babadd4db13a6ed7b47a51c41ab90e46.jpg

查看已经打开的screen会话:

0ab67895d90fa1733b093fc8c4805d6a54d.jpg

退出screen会话的方法:按Ctrl+A键,然后再按d退出(只是退出,不是结束,结束screen会话要按Ctrl+D或者输入exit)。

退出后如果还想再次登录某个screen会话,可以使用命令screen -r [ screen 编号 ](编号如上图的2997)。如果当前只打开一个screen会话,后面的编号可以省略。

当需要长时间运行某个命令或者脚本时,就打开一个screen会话,然后运行该任务,按Ctrl+A键,再按d键退出会话,这样不影响终端窗口上的任何操作。

转载于:https://my.oschina.net/u/3992198/blog/2909945

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值