Linux日常运维4-6

Linux日常运维4-6

Linux日常运维4

4.rsync备份数据

Rsync不仅可以远程同步数据,当然还可以本地同步数据,rsync不像cp/scp一样会覆盖以前的数据(如果数据已经存在),它会先判断已经存在的数据和新数据有什么不同,只有不同时才会把不同的部分覆盖掉。

安装rsync软件

[root@antong ~]# yum install -y rsync

rsync的用法

[root@antong ~]# rsync -av test.txt  /tmp
sending incremental file list
test.txt
sent 1799 bytes  received 31 bytes  3660.00 bytes/sec
total size is 1723  speedup is 0.94

上例表示把当前目录下的test.txt同步到/tmp/目录下,也可以更改目标文件的名字, rsync -av test.txt /tmp/test_bk.txt

[root@antong ~]# rsync -av test.txt  192.168.200.10:/tmp/test_bk.txt
root@192.168.200.10's password: 
sending incremental file list
sent 33 bytes  received 12 bytes  18.00 bytes/sec
total size is 1723  speedup is 38.29

上例是远程拷贝的形式

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

rsync命令的选项:

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

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

-v 打印一些信息出来,比如速率,文件数量等

-l 保留软链结

-L 向对待常规文件一样处理软链结,如果是SRC中有软连接文件,则加上该选项后将会把软连接指向的目标文件拷贝到DST

-p 保持文件权限

-o 保持文件属主信息

-g 保持文件属组信息

-D 保持设备文件信息

-t 保持文件时间信息

--delete 删除那些DST中SRC没有的文件

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

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

-u 加上这个选项后将会把DST中比SRC还新的文件排除掉,不会覆盖

常用(-a -v --delete --exclude)这些参数

Linux日常运维5

5.Linux系统日记

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

系统有一个日志轮询的机制,每星期切换一个日志,变成message.xxxxxxxx, message.xxxxxxxx, ... messages.xxxxxxxx 连同messages一共有5个这样的日志文件。这里的xxxxxxxx就是按照日期的格式生成的文件。

如果没有特殊需求请不要修改这个配置文件/etc/logrotate.conf

/var/log/messages是由syslogd这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages,所以这个服务不要停。

通过下面命令实时查看日志

[root@antong ~]# tailf /var/log/message

Linux日常运维6

6.1、xargs
[root@antong ~]# echo “121212121212” > 123.txt
[root@antong ~]# ls 123.txt | xargs cat
121212121212

它的作用就是把管道符前面的输出作为xargs后面的命令的输入。xargs常常和find命令一起使用,例如

[root@antong ~]# find . -mtime +10 |xargs rm

查看当前目录下创建大于十天的文件,然后将它删除,rm后加-r时为删除目录

查找当前目录下所有.txt的文件,然后把这些.txt的文件变成.txt_bak。正常情况下,我们不得不写脚本去实现,但是可以使用xargs。

[root@antong ~]#  mkdir  test
[root@antong ~]#  cd test
[root@antong ~]#  touch 1.txt 2.txt 3.txt 4.txt 5.txt
[root@antong ~]#  ls
 1.txt  2.txt  3.txt  4.txt  5.txt
[root@antong ~]#  ls *.txt |xargs -n1 -i {} mv {} {}_bak
[root@antong ~]# ls
 1.txt_bak  2.txt_bak  3.txt_bak  4.txt_bak  5.txt_bak
上例xargs -n1 -i {} mv {} {}_bak表达式-n1为依次处理对象,-i {}将前面的对象使用{}取代,mv {} {}_bak 将对象文件改名
6.2、exec

使用find命令时,经常使用一个选项就是这个-exec了,可以达到和xargs同样的效果。

[root@antong ~]#  find . -mtime +10 -exec rm -rf {}\;

这个命令中也是把{}作为前面find出来的文件的替代符,后面的 \ 为 ; 的脱意符,不然shell会把分号作为该行命令的结尾。

posted @ 2021-08-26 19:31  殇黯瞳  阅读(43)  评论(0编辑  收藏  举报