0420日常运维(四)rsync工具、linux系统日志、screen工具

 

4月20日任务:
10.28 rsync工具介绍
10.29/10.30 rsync常用选项
10.31 rsync通过ssh同步
10.32/10.33 rsync通过服务同步
10.34 linux系统日志
10.35 screen工具

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

 

 

rsync的使用场景

日志切割工具logrotate
https://linux.cn/article-4126-1.html

xargs
https://blog.csdn.net/gb4215287/article/details/78037520

 

 

1、rsync工具介绍

Linux系统下有很多数据备份工具,常用的是rsync,从字面意思理解为remote sync (远程同步)。rsync不仅可以远程同步数据(类似scp),而且可以本地同步数据(类似于cp),但不同cp或者scp的一点是,它不会覆盖以前的数据 (如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

rsync是一款快速且功能非常多的文件复制工具。它可以在本地复制,通过任何远程shell或从另一台主机复制到/从远程 rsync守护进程。它提供了大量的选项控制其行为的每个方面并允许非常灵活指定要复制的文件集。它是著名的其增量转 换算法,可减少发送的数据量通过发送只有来源之间的差异在网络上文件和目标中的现有文件。rsync很广泛用于备份 和镜像以及作为改进的复制命令日常使用。

 

安装rsync     yum install -y rsync

 

rsync -av /etc/passwd /tmp/1.txt       把/etc/passwd拷贝到tmp/下并改名叫1.txt

上面命令中:
a参数中包含了很多选项
v查看到可视化过程;查看到发送了多少字节;多少字节每秒;文件一共有多大;速度是多少

7e896b1f8f121ca1fcf9f10fc1ca7b39145.jpg

 

rsync -av /etc/passwd root@192.168.86.31:/tmp/1.txt        远程复制,输入用户的密码后,可以拷贝

这里要求远程的机器也必须按照rsync,需要验证密码是因为这里没有做两机互联

d7cbc88f76f84da07362d4ae1f15a7caa6b.jpg

 

rsync格式  

rsync [OPTION] … SRC   DEST    本机的

rsync [OPTION] … SRC   [user@]host:DEST  

rsync [OPTION] … [user@]host:SRC   DEST  

rsync [OPTION] … SRC   [user@]host::DEST  

rsync [OPTION] … [user@]host::SRC   DEST

OPTION是选项(a,v),SRC是源文件或目录,DEST是目标目录或者文件;[USER@]host是远程服务器,host代表IP,[USER@]可以省略,如果不写用户名,默认会以当前终端的用户执行

 

2、 rsync常用选项

-a 包含-r t p l g o D参数选项
 -r 同步目录时要加上,类似cp时的-r选项
 -v 同步时显示一些信息,让我们知道同步的过程
 -l 保留软连接,若是拷贝的原目录里面有一个软链接文件,那这个软链接文件指向到了另外一个目录 下。在加上-l,它会把软链接文件本身拷贝到目标目录里面去
 -L 加上该选项后,同步软链接时会把源文件给同步,(可以把软连接所指向的源文件拷贝过去)
 -p 保持文件的权限属性
 -o 保持文件的属主(如果A是www用户所有者,过去B一样是www用户,如果B没有www用户,会显示成数字,有user1的话就显示成user1)
 -g 保持文件的属组
 -D 保持设备文件信息,/dev/sdb1这样的设备文件有它的特殊性,如果不加-D可能拷贝过去就是一个 非常普通的文件,不能当设备来用
 -t 保持文件的时间属性
 --delete 删除DEST(目标目录)中SRC(源目录)没有的文件
 --exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步。可以写多个--exclude
 -P 显示同步过程,比如速率,比-v更加详细
 --progress 同-P功能一样
 -u 加上该选项后,如果DEST(目标目录)中的文件比SRC(源目录里的文件)新,则不同步
 -z 传输时压缩
 常用选项较多,常用的有:a,-v,-z,--delete和--exclude

123目录作为源,tmp做目标目录

 rsync -av /root/123/ /tmp/123_dest/   同步一个目录,把root下的123目录同步到tmp下并改名为123_dest

e3d7d37099cf0ba8c32fcb43a68e43064b0.jpg

 rsync -avL --delete /root/123/ /tmp/123_dest/          --delete 删除多余的文件

9e40b82ab8cb6e3151c83cba38916291781.jpg

 rsync -avP  /root/123/ /tmp/123_dest/            P显示同步过程

96b2e2c259e10a7acbc385a627cba427ae2.jpg

3、rsync通过ssh同步

rsync通过ssh方式同步,从A机器到B机器,通过ssh的方式去传输

rsync -av test1/ 192.168.86.31:/tmp/test2/                推文件,192.168.86.31是目标IP,并且这台机器也需要安装rsync

rsync -avP 192.168.86.31:/tmp/test2/  /tmp/test1/    拉文件,把远程文件拉回到本机

如果对方机器的端口不是22:

rsync -av -e "ssh -p 22" test1/ 192.168.86.31:/tmp/test2/      (ssh -p 22) 是一个命令指定端口,可以连接对方的指定端口

ssh -p 192.168.86.31  也可以这样去连接对方机器

4、rsync通过服务同步

rsync 通过服务的方式同步  ,默认端口是873

要编辑配置文件/etc/rsyncd.conf  

启动服务rsync --daemon  

格式:rsync -av /root/123/ 192.168.228.31::test/tobe.txt   两个 ::test    //test表示[test]模块名路径/tmp/rsync

 

rsyncd.conf样例,把下列内容放到/etc/rsyncd.conf配置文件中
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.86.3
[test]                                //[test] 模块名
path=/tmp/rsync           // 目录为实验目录/tmp/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.86.31

然后rsync --daemon 启动服务,通过 ps aux |grep rsync查看服务是否启动

24c519482036ac5b55c68204ed3ae0b4f14.jpg

netstat -lntp        查看监听的端口是873,如果不写监听的IP,就会绑定0.0.0.0 全部网段,全部IP为8738a22916ce72bdabaa86bfeec8956cc9750f.jpg

 mkdir /tmp/rsync  创建实验目录

chmod 777 /tmp/rsync/  更改权限

1e9441c8dedfb7e3c6b064377495d3c3640.jpg

yum install -y telnet   安装telnet

telnet 192.168.228.31 873  检测端口是否通畅,下方的端口不通

a0f4653e6edf6b9ee18f142463e7e3d42e7.jpg

关闭firewalld        

systemctl stop firewalld.service

893621e6ec3776a714501845879381bea97.jpg

在B机器上给服务器写文件

rsync -av /root/123/ 192.168.228.3::test/tobe.txt

5774146ce52535a7e24edadb73aadab6a38.jpg

rsyncd.conf配置文件详解

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

log file:指定日志文件。

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

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

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

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

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

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

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

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

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

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

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

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

 use chroot=true|false 当有软链接,需要给其定义为false; 

当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件  

rsync -avL test@192.168.133.130::test/test1/  /tmp/test8/ --password-file=/etc/pass  

其中/etc/pass内容就是一个密码,权限要改为600

 

第一步、在服务端,创建一个软连接

a2693d1a4d97816dc1b0c63d695e27c790c.jpg

第二步、修改配置文件  vim /etc/rsyncd.conf

bbcd7cc4d0218bd38df92f45a2f8c37f123.jpg

第三步、在另一个客户端同步test模块
rsync -avLP  192.168.176.31::test/ /tmp/test/        从服务的传输到test目录

e8609ef4b2150820697dda9c1489af9ee0d.jpg

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

secrets file:指定密码文件

87ce97efaa70e655b17c4fa2b2df4bc4743.jpg

5、Linux系统日志

曰志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等,可以通过他来检查错误发生的原因.日志的主要功能是审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。

 

/var/log/messages   

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

c2a492ef7f29fc833ffaf013083add498c8.jpg

在查看曰志的时候,会发现曰志自动切割了 ls /var/log/messages*

 

d17ed5512dc42b3ae2397881a5d3d4f058b.jpg

linux系统中有一个logrotate服务,会自动切割日志,防止无限制的增加。

logrotate用来切割日志    /etc/logrotate.conf 日志切割配置文件

f6642e57d3a64e0e84f3c189cd99cae93c4.jpg

530ba5d684479f7f9378ae4c0ff63a2bcf3.jpg

查看  cat /etc/logrotate.d/syslog

93edb5d2e90d932e41ca7aaf9b953bd0ef0.jpg

syslog文件会为cron, maillog, messages, secure, spooled这几个日志进行切割
messages日志是由syslogd服务决定的,所以kill -HUP就会重新加载这个日志 
还有一个脚本,shell命令行,在把日志切割后(挪走),改名字生成新的日志
Linux系统有一个特点,一个服务写一个文件的时候,并不是按照文件名去写的,而是根据inode来写的

 

dmesg命令和dmesg日志
dmesg命令,会把系统硬件相关的日志列出来

088fab9a5d14a942a094ab1e0aa429c17b0.jpg

这个日志是保存在内存中的,并不是一个文件;假如你的网卡有问题了,硬盘损坏了,都会记录在这个日 志中
dmesg -c清空当前日志;但是一重启这个系统,又会生成这些日志

6f9c21dfc8a22809997b2055336ba9e894d.jpgab5805677582d9458d275e723640f3fcd22.jpg

 

/var/log/dmesg 日志

注意:这个日志文件和dmesg命令没有任何关联;它是系统启动的一个日志,记录的信息

 

last命令,调用的文件/var/log/wtmp

last命令,查看你正确的登陆历史

75a1200c291a6e16647b2dc6c77b1b91b17.jpg

它调用的文件/var/log/wtmp。
里面记录的是谁,在哪里,来源IP,时间,登录的时长都会有记录 
 /var/log/wtmp日志是一个二进制文件,不能直接cat查看,只能用last命令去查看

 

lastb命令查看登录失败的用户,对应的文件时/var/log/btmp

对应的文件时/var/log/btmp日志 
 /var/log/btmp也是二进制文件,不能直接cat的

df3ce289e701b486caaba99b39174636515.jpg

 

安全日志

/var/log/secure   登陆操作系统,验证成功会在这里记录要给日志,失败也会记录

975df8cef55b645da42f790bff3fb3cf29b.jpg

6、screen工具   虚拟终端

有时候我们需要执行一个命令或脚本,需要几小时甚至几天,在这个过程中,如果中途断网或者出现有其他意外情况怎么办,当然也可以把命令或者脚本放到后台运行,不过不保险,无法在屏幕上随时查看,这就要用到虚拟终端screen。
单个screen,建立、退出

首先安装screen包   : yum install -y screen

输入screen直接回车就进入了虚拟终端

ctrl+a ,再按d,退出虚拟终端,但不是结束

fdaf956f2fe327b3554daf0380b8e02347f.jpg

screen -ls   查看已打开的screen会话

b88facdeb29507fac56337cdac6e90da612.jpg

退出后,如果想再次登入某个screen会话,可以使用的是screen -r  id  进入指定的终端

0714afc3ea53b237a4d831975aad1c79551.jpg

exit,可以直接退出screen会话

如果有多个screen会话,可以通过id进入指定的会话

eb59eb39cade79c33dfe651f59535e2dfa1.jpg

如果screen太多,却不知道其功能作用,需要命令和定义

screen -S "test_screen" 定义一个自定义的名字-S

87ea4f633c29e8a73c9eee471e53c69aed8.jpg

 

转载于:https://my.oschina.net/u/4093217/blog/3039123

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值