rsync工具介绍

rsync:数据备份工具(remote sync)。

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

 (系统如果没有rsync命令,安装:yum install -y rsync)

(如:有两台机器A、B,要把A的数据每小时都备份到B下,而且A的文件世事刻刻都在更新,如果我们每小时在备份的时候使用的是 cp 操作,则每次都是把B上的文件都覆盖一次,这样我们耗费的时间就很久(如果内容很大)。但是使用rsync则会把A和B之间数据不同的部分进行覆盖,这样耗费的时间就会断,耗费带宽也会小)




1.使用rsync 对本地文件进行操作:

rsync -av /etc/passwd /tmp/1.txt   (把/etc/passwd 同步到/tmp下,命名为1.txt)


2.使用rsync远程同步 (进行远程同步必须远程机器和本地机器都得安装有rsync工具)

格式:rsync [选项]  备份文件数据  [user@]ip: 目标地址

([user@]可以省略 ,表示拷贝到user这个用户下。“:”后面跟路径)

rsync -av /tmp/1.txt root@192.168.136.134:/tmp/2.txt


其他选项

 rsync格式

 rsync [OPTION] … SRC   DEST


 rsync [OPTION] … SRC   [user@]host:DEST      把文件同步到远程机器上,[user@]可以省略,如果不加这个选项,则我们在执行这条命令时是什么用户(如在root用户下),则会同步到远程机器ip和执行这条命令时用户(root用户,如果远程机器没有这个目录则会报错)下。两则保持统一。


 rsync [OPTION] … [user@]host:SRC   DEST    //把远程机器的内容同步到本地机器中

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

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

[option] :选项         SRC : 源目录、文件      DEST:目标目录、文件


                                 rsync常用选项

-a 包含-rtplgoD这些选项

-r 同步目录时要加上,类似cp时的-r选项

-v 同步时显示一些信息(速度,字节等),让我们知道同步的过程

-l 保留软连接(A->B同步时,把软链接保存到B,但B无软链接的源文件,软链接在B上会            报错,失效。)

-L 加上该选项后,同步软链接时会把源文件给同步

-p 保持文件的权限属性

-o 保持文件的属主

-g 保持文件的属组

-D 保持设备文件信息

-t 保持文件的时间属性

--delete 删除DEST(目标目录)中SRC(源目录)没有的文件,加这个选项则会同步成一模一样(A有1.txt 2.txt  B有3.txt,同步时加--delete则会把B中的3.txt删除)

--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步

-P 显示同步过程,比如速率,比-v更加详细

-u 加上该选项后,如果DEST中的文件比SRC新,则不同步

-z 传输时压缩,则可以省时间,节省带宽。


做试验(本地)源目录/root/111/      目标目录:/tmp/

1.rsync -av /root/111/ /tmp/111_dest/

但是此时的软链接文件是失效的

加上-L 同步软链接时会把源文件给同步

rsync -avL/root/111/ /tmp/111_dest/ (虽然-a中此时有小l,但是L在则会先执行-L功能)


(因为一开始软链接失效,所以再次操作时,先把B上的软链接指向先做成有效,如下图:)


2.在/tmp/111_dest/下创建多一个文件new.txt

 touch /tmp/111_dest/new.txt

使用 --delete  删除DEST(目标目录)中SRC(源目录)没有的文件

(删除/tmp/111_dest/new.txt)

 


3.过滤 --exclude(先删除在测试:rm -rf /tmp/111_dest/*)

rsync -avL --exclude "*.txt" /root/111/ /tmp/111_dest/

(同步时过滤所有 .txt文件)

支持多个 --exclude连写

rsync -avL --exclude "*.txt" --exclude "cansheng*" /root/111/ /tmp/111_dest/


4.-P选项   显示同步过程,比如速率,比-v更加详细 


5. -u选项

DEST中的文件比SRC新,则不同步

/tmp/111_dest/的文件4913内容更改,新增内容(源/root/111/4913文件下无内容

 rsync -avPu /root/111/ /tmp/111_dest/


                                                  

                                                 rsync通过ssh同步

(现有A机器:192.168.136.133; B机器:192.168.136.134。并且两台机器能相互通信)


 1.A-->B

rsync -av /etc/passwd root@192.168.136.134:/tmp/cansheng.txt

  B-->A

rsync -avP  root@192.168.136.134:/tmp/cansheng.txt  /tmp/123.txt


2.指定端口: -e "ssh -p 端口号"

-e "ssh -p 22"  指定对方22端口)

rsync -avP -e "ssh -p 22" /etc/passwd root@192.168.136.134:/tmp/cansheng.txt


ssh -p 端口号+ip (远程连接命令)



                                rsync通过服务同步

通过服务同步:首先要开始一个服务(架构是c/s,客户端和服务端,服务端开启一个rsync服务,并且监听一个端口(默认873,但是可以自定义),客户端就可以通过873端口和服务端进行通信)

格式:rsync -av test1/ 192.168.136133:module/dir/

(A:服务端,B客户端)

开启服务前:(对A机器)

1.修改配置文件:/etc/rsyncd.conf

rsyncd.conf样例

添加以下内容:

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.136.133

[test]

path=/tmp/rsync   (首先这个目录要存在,不存在就创建mkdir /tmp/rsync。修改权限方便实验:chmod 777 /tmp/rsync)

use chroot=false

max connections=4

read only=no

list=true

uid=root

gid=root

auth users=test

secrets file=/etc/rsyncd.passwd       --》定义密码的

hosts allow=192.168.136.134

2.启动服务:rsync --daemon

(查看服务启动是否成功 :ps aux |grep rsync)

netstat -lntp  查看监听端口


3.在B机器上同步一个文件到A

 rsync -avP /tmp/cansheng.txt 192.168.136.133::test/cansheng-02.txt

(::后面的test是在上诉配置文件中/etc/rsyncd.conf定义的模块名,这里代表test=/tmp/rsync)


出现报错:

出现这种问题首先查看网路的联通性:ping 192.168.136.133

若通,则测试监听端口是否同。命令:telnet ip 端口

telnet 192.168.136.133 873  (yum install -y telnet)

如果测试端口有问题


此时报错:

首先判断是否iptables的问题 iptables -nvL 

(有问题)

若是iptables 问题,则把firewalld停掉(A和B机器都停掉):systemctl stop firewalld


此时再次执行:telnet 192.168.136.133 873

(出现图中信息则正确,退出则为:ctrl+u+]  后 qiut)


再运行:在B机器上同步一个文件到A

 rsync -avP /tmp/cansheng.txt 192.168.136.133::test/cansheng-02.txt

(输入密码即可。那么这个输入的密码实在哪里定义呢?答案是:/etc/rsyncd.conf中


的secrets file定义,如果不想输入密码,则删除或注释掉进行)

(为什么视频中auth users也注释掉?)


(同步成功,A中有同步的文件存在


(/etc/rsync/conf 文件修改了要重启,但是重启了端口不会变(netstat -lntp 查看

但是/etc/rsync/conf 文件修改了use chroot=false这行则不用重启 )



      修改端口:8730 (B:运行命令时要指定端口--port 8730)

killall rsync 

ps aux |grep rsync

启动服务:rsync --daemon

netstat -lntp

rsync -avP  192.168.136.133::test/  /tmp/test/

(因为修改了端口此时运行这条命令会出错)

修改命令后,端口不在是默认的873。运行命令时要指定端口号 --port 8730

rsync -avP --port 8730 192.168.136.133::test/  /tmp/test/


在配置文件中/etc/rsyncd.conf

中添加的内容里

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

(上述实验中我们把auth users=test和secrets file注释了操作的,一下是删掉这两行注释)

在同步时使用指定用户和密码:

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

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


密码文件:/etc/rsyncd.passwd

vim /etc/rsyncd.passwd

然后修改文件权限:chmod 600 /etc/rsyncd.passwd

B机器上执行:rsync -avP /tmp/test --port=8730 test@192.168.136.133::test/

(这是就要设置密码和输入密码了。)


怎么在同步时不用手动输入密码呢?

在客户端也定义一个密码文件:(如:/etc/rsync_pass.txt)

    vi /etc/rsync_pass.txt  在文件中直接写入我们在服务端A:/etc/rsyncd.passwd文件中用户名的密码进行(只写密码)


修改文件权限600:chmod 600  /etc/rsync_pass.txt

此后在同步时再加上一个选项 --password-file=密码文件路径

rsync -avP /tmp/test --port=8730 --password-file=etc/rsync_pass.txt  test@192.168.136.133::test/

这时候同步就不需要在客户端B手动输入密码:


(总结:当我们在这两个选项中设定了用户和密码文件时,如果想在客户端同步且不用手动输入命令

auth users=test

secrets file=/etc/rsyncd.passwd

首先编辑服务端密码文件(vi /etc/rsyncd.passwd 添加内容,格式:用户名:密码)

接着修改该文件(vi /etc/rsyncd.passwd)权限600,chmod 600 /etc/rsyncd.passwd

再在客户端上定义一个密码文件:(如:/etc/rsync_pass.txt)在文件里直接添加刚刚服务端文件定义的密码

再修改该文件权限600 ,chmod 600 /etc/rsync_pass.txt

最后执行同步命令即可

)

Linux系统日志

我们的服务在运行的时候,当出现了问题往往能通过相应的日志文件来检查到出现的错误

日志文件记录了系统每日的各种事情(监控系统状态,排查系统故障等),通过日志来检查错误发生的原因,或者受到***时***者留下的痕迹。

日志切割配置文件: /etc/logrotate.conf  (

参考https://my.oschina.net/u/2000675/blog/908189

)

(系统为了防止日志过于大,可以实现了切割。命令:ls /var/log/messages*可以查看到切割后的文件

   

 )

cat /etc/logrotate.conf


命令:dmesg (会把系统硬件相关的日志列出来,但是都是保存在内存中)

dmesg -c 把内存中的日志清空,但是重启又会加载


/var/log/dmesg 日志  系统启动的一个日志(与命令dmesg没关联)


命令 :last     查看正确登录的历史   (命令:last 是调用 /var/log/wtmp(二进制文件))


命令:lastb  查看 登录失败的用户信息 ,调用/var/log/btmp二进制文件


安全日志:/var/log/secure

当我们的机器受到***破解我们的登录密码或者其他操作时这个安全日志就会有记录



                             screen工具

(使用场景:有一个脚本需要运行几个小时或几天,过程中若断网该怎么解决?

为了避免断网造成中断有两种方法:

1.任务放到后台执行,加一个日志输出

 nohup command(执行命令) &

如:nohup /user/local/sbin/xxx.sh &

(使用nohup将任务放置后台执行,执行后会生成nohup的一个文件,这文件就是防止进程意外中断,并会把输出信息记录到nohup文件中)

nohup不能时刻将输出内容显示在屏幕上

2.screen工具(yum install -y screen)

命令:screen  直接回车就进入了虚拟终端

screen +任务/命令 (此时任务不会中断)


ctral a组合键再按d退出虚拟终端,但不是结束(把screen放到后台)

screen -ls 查看虚拟终端列表


把screen再调回来 screen -r id号

screen -r 3895

( screen -r id 进入指定的终端)

终止(杀死)screen进程: exit

exit 后screen -ls 则没screen任务了

screen -ls 查看虚拟终端列表


当我们要执行很多个screen时,为了方便的知道到底相应id对应的任务是什么:

进入screen时定义相应的名字:

screen -S 定义的名字 (screen -S vmstat_test)

这个时候进入到指定终端screen,就有两种方法:

1. screen -r id

2. screen -r 定义的名字




转载于:https://blog.51cto.com/13589255/2084717

十(7)rsync:介绍、常用选项、通过ssh同步、通过服务同步、linux系统日志、screen...相关推荐

  1. 10.32/10.33 rsync通过服务同步 10.34 linux系统日志 screen工具

    通过后台服务的方式 在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器. 在128主机上建立并配置rsync的 ...

  2. rsync工具介绍,rsync常用选项,rsync通过ssh同步

    rsync安装命令: yum -y install rsync rsync是一个比较重要的工具,需要熟练掌握,在工作中很有可能每天都会用到这个工具.例如我们从A机器传输文件到B机器,或者通过远程去备份 ...

  3. 10.28rsync工具介绍10.2910.30rsync常用选项10.31rsync通过ssh同步

    10.28 rsync工具介绍 本机同步,将passwd同步到/tmp/更名为1.txt 远程的的同步方法 10.29/10.30 rsync常用选项 加上L同步软链接时会把源文件给同步 aming3 ...

  4. Shader的诞生 十大贴图常用贴图介绍

    一:标准shader 1.标准Shader背景 Unity4.x 阶段,Unity 老被拿来和UrealEngine(虚幻)进行对比,得到的结论就是Unity 是"渣画质",Ure ...

  5. Rsync下行同步+inotify实时同步介绍和部署

    Rsync下行同步+inotify实时同步介绍和部署 一.Rsync 1.Rsync同步源 2.Rsync服务器 3.同步方式 二.配置rsync源 三.rsync命令 四.配置源的两种表示方法 1. ...

  6. Rsync介绍与配置

    Rsync介绍与配置 一.Rsync–数据镜像备份工具 1.Rsync 概述 2.Rsync 特性 3.Rsync 同步源 4.Rsync 配置流程 5.Rsync 使用语法及参数详解 二.Inoti ...

  7. GCC常用选项使用详解

    通常所说的GCC是GUN Compiler Collection的简称,除了编译程序之外,它还含其他相关工具,所以它能把易于人类使用的高级语言编写的源代码构建成计算机能够直接执行的二进制代码.GCC是 ...

  8. 苹果12开发者设置_苹果12怎么省电?iPhone12系列省电设置十大技巧介绍

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.每天都会有分享,都是免费订阅,请您放心关注.注图文来源网络,侵删 大家 ...

  9. 苹果12开发者设置_苹果12怎么省电?iPhone12系列省电设置十大技巧介绍_苹果知识...

    大家都知道,今年iPhone12的性能相比上一代11更强,但是电池配置却变小了,这让很多果粉甚是纠结,在续航不佳的前提下,我们只有通过一些省电设置,才能让iPhone12系列有更好的续航能力.接下来, ...

最新文章

  1. 细胞内钾多钠少——原初生物的第三大遗迹?
  2. 设置Dialog全屏显示(转)
  3. 试题 历届试题 带分数(全排列)
  4. 【机器视觉】 dev_open_file_dialog算子
  5. 2021ICPC(澳门) - LCS Spanning Tree(广义后缀自动机)
  6. 点击User Profile Service Application 报错
  7. 32位系统win2008+mssql2008 6G内存折腾纪实
  8. 不吹牛逼,撸个注解有什么难的
  9. 在Windows下使用Git+TortoiseGit+码云管理项目代码
  10. docker network 网络模式
  11. c语言表达式求值的空间复杂度,373-时间复杂度(表达式求值)
  12. PHP 是生还是死?
  13. 请投量子位一票 | 2018年度明星学术公众号评选
  14. rosweb,roslib,ROS2D.PolygonMarker 绘制多边形
  15. Java学习之——泛型
  16. C语言 - 数组作为参数传递给函数(按值传递和按引用传递)
  17. 基于Springboot的个人健康监控管理系统 毕业论文+项目源码、
  18. java中将汉字转拼音,解决pinyin4j多音节问题
  19. php ckfinder 无效请求.,解决nginx和php使用ckfinder无法上传大文件的问题
  20. 【PyTorch教程】P30 GPU加速

热门文章

  1. react的事件机制
  2. 怎样在SQL Server上部署SSIS包 2
  3. 建立个人Maven仓库
  4. 开发平台怎么选?来看看专业人士怎么说
  5. Mac系统搭建java开发环境
  6. 本来连学计算机的都不是,怎么却读了计算机研究生
  7. keepalived架设简单高可用的nginx的web服务器   ----那些你不知道的秘密
  8. python字符串编码判断
  9. .NET领域驱动设计—初尝(原则、工具、过程、框架)
  10. python getopt模块_python里argparse模块和getopt模块的区别