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/6776925html
rsync的使用场景
日志切割工具logrotate
https://linux.cn/article-4126-1.html
xargs
https://blog.csdn.net/gb4215287/article/details/78037520node
一、rsync工具介绍linux
Linux系统下有不少数据备份工具,经常使用的是rsync,从字面意思理解为remote sync (远程同步)。rsync不只能够远程同步数据(相似scp),并且能够本地同步数据(相似于cp),但不一样cp或者scp的一点是,它不会覆盖之前的数据 (若是数据已经存在),而是先判断已经存在的数据和新数据的差别,只有数据不一样时才会把不相同的部分覆盖。算法
rsync是一款快速且功能很是多的文件复制工具。它能够在本地复制,经过任何远程shell或从另外一台主机复制到/从远程 rsync守护进程。它提供了大量的选项控制其行为的每一个方面并容许很是灵活指定要复制的文件集。它是著名的其增量转 换算法,可减小发送的数据量经过发送只有来源之间的差别在网络上文件和目标中的现有文件。rsync很普遍用于备份 和镜像以及做为改进的复制命令平常使用。shell
安装rsync yum install -y rsyncapache
rsync -av /etc/passwd /tmp/1.txt 把/etc/passwd拷贝到tmp/下并更名叫1.txtvim
上面命令中:
a参数中包含了不少选项
v查看到可视化过程;查看到发送了多少字节;多少字节每秒;文件一共有多大;速度是多少安全
rsync -av /etc/passwd root@192.168.86.31:/tmp/1.txt 远程复制,输入用户的密码后,能够拷贝服务器
这里要求远程的机器也必须按照rsync,须要验证密码是由于这里没有作两机互联网络
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@]能够省略,若是不写用户名,默认会以当前终端的用户执行
二、 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
rsync -avL --delete /root/123/ /tmp/123_dest/ --delete 删除多余的文件
rsync -avP /root/123/ /tmp/123_dest/ P显示同步过程
三、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 也能够这样去链接对方机器
四、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查看服务是否启动
netstat -lntp 查看监听的端口是873,若是不写监听的IP,就会绑定0.0.0.0 所有网段,所有IP为873
mkdir /tmp/rsync 建立实验目录
chmod 777 /tmp/rsync/ 更改权限
yum install -y telnet 安装telnet
telnet 192.168.228.31 873 检测端口是否通畅,下方的端口不通
关闭firewalld
systemctl stop firewalld.service
在B机器上给服务器写文件
rsync -av /root/123/ 192.168.228.3::test/tobe.txt
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
第一步、在服务端,建立一个软链接
第二步、修改配置文件 vim /etc/rsyncd.conf
第三步、在另外一个客户端同步test模块
rsync -avLP 192.168.176.31::test/ /tmp/test/ 从服务的传输到test目录
-auth users 指定传输时要使用的用户名
secrets file:指定密码文件
五、Linux系统日志
曰志记录了系统天天发生的各类各样的事情,好比监测系统情况、排查系统故障等,能够经过他来检查错误发生的缘由.日志的主要功能是审计和监测,还能够实时的监测系统状态,监测和追踪侵入者等等。
/var/log/messages
系统平常日志 /var/log/messages 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其余状态 消息。IO错误、网络错误和其余系统错误都会记录到这个文件中。另外其余信息,好比某我的的身份切换为root以及用 户自定义安装的软件(apache)的日志也会在这里列出。
在查看曰志的时候,会发现曰志自动切割了 ls /var/log/messages*
linux系统中有一个logrotate服务,会自动切割日志,防止无限制的增长。
logrotate用来切割日志 /etc/logrotate.conf 日志切割配置文件
查看 cat /etc/logrotate.d/syslog
syslog文件会为cron, maillog, messages, secure, spooled这几个日志进行切割
messages日志是由syslogd服务决定的,因此kill -HUP就会从新加载这个日志
还有一个脚本,shell命令行,在把日志切割后(挪走),更名字生成新的日志
Linux系统有一个特色,一个服务写一个文件的时候,并非按照文件名去写的,而是根据inode来写的
dmesg命令和dmesg日志
dmesg命令,会把系统硬件相关的日志列出来
这个日志是保存在内存中的,并非一个文件;假如你的网卡有问题了,硬盘损坏了,都会记录在这个日 志中
dmesg -c清空当前日志;可是一重启这个系统,又会生成这些日志
/var/log/dmesg 日志
注意:这个日志文件和dmesg命令没有任何关联;它是系统启动的一个日志,记录的信息
last命令,调用的文件/var/log/wtmp
last命令,查看你正确的登录历史
它调用的文件/var/log/wtmp。
里面记录的是谁,在哪里,来源IP,时间,登陆的时长都会有记录
/var/log/wtmp日志是一个二进制文件,不能直接cat查看,只能用last命令去查看
lastb命令查看登陆失败的用户,对应的文件时/var/log/btmp
对应的文件时/var/log/btmp日志
/var/log/btmp也是二进制文件,不能直接cat的
安全日志
/var/log/secure 登录操做系统,验证成功会在这里记录要给日志,失败也会记录
六、screen工具 虚拟终端
有时候咱们须要执行一个命令或脚本,须要几小时甚至几天,在这个过程当中,若是中途断网或者出现有其余意外状况怎么办,固然也能够把命令或者脚本放到后台运行,不过不保险,没法在屏幕上随时查看,这就要用到虚拟终端screen。
单个screen,创建、退出
首先安装screen包 : yum install -y screen
输入screen直接回车就进入了虚拟终端
ctrl+a ,再按d,退出虚拟终端,但不是结束
screen -ls 查看已打开的screen会话
退出后,若是想再次登入某个screen会话,可使用的是screen -r id 进入指定的终端
exit,能够直接退出screen会话
若是有多个screen会话,能够经过id进入指定的会话
若是screen太多,殊不知道其功能做用,须要命令和定义
screen -S "test_screen" 定义一个自定义的名字-S