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会把分号作为该行命令的结尾。