rsync服务同步、日志文件、screen工具

简介:

10.32 rsync通过服务同步(上)

在使用该方法进行同步之前需要先在服务的开启相应服务同时要监听一个端口(可自定义),默认是监听873端口,开启服务之前编辑rsync配置文件“/etc/rsyncd.conf”(将服务添加进去)然后直接使用命令:“rsync --daemon(服务名称)”进行同步。或者将配置文件写到一个自定义文件中,使用命令“rsync --configfile”进行同步。
配置完成后客户端可以通过指定端口与服务端进行通信。

配置服务

编辑配置文件:

[root@adai003 grep]# vim /etc/rsyncd.confport=873#指定启动rsync服务的端口,如果不指定,默认为873端口log file=/var/log/rsync.log#指定日志文件pid file=/var/run/rsyncd.pid#指定pid文件,这个文件的作用涉及服务的启动、停止等进程操作。address=192.168.8.125#指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。[test]#指定模块名,里面内容自定义path=/tmp/rsync#指定数据存放的路径use chroot=true#use chroot=true/false:安全参数,表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以roots权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,建议设置成false。max connections=4#指定最大的连接数,默认是0,即没有限制。read only=no#read only ture|false:如果为true,则不能上传到该模块指定的路径下。list=true#表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出(此时功能类似于tab),false则隐藏。uid=root
gid=root#指定传输文件时以哪个uid和gid的身份进行。#auth users=test#指定传输时要使用的用户名#secrets file=/etc/rsyncd.passwd#指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。#注意:该密码文件的权限一定要是600。格式:“用户名:密码”hosts allow=192.168.8.129#表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。

说明: 当设置了auth users和secrets file后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件“/etc/pass”,然后执行命令:“ rsync -avL test@192.168.133.130::test/test1/ /tmp/test8/ --password-file=/etc/pass”,其中/etc/pass内容就是一个密码,权限要改为600(文件内容格式为:“用户名:密码”)。

启动服务

开启服务:
[root@adai003 grep]# rsync --daemon检测服务状态:
[root@adai003 grep]#  ps aux |grep rsyncroot      9155  0.0  0.0 114644   552 ?        Ss   23:22   0:00 rsync --daemon
root      9159  0.0  0.0 112664   976 pts/0    S+   23:23   0:00 grep --color=auto rsync
[root@adai003 grep]# netstat -lntpActive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1300/sshd           
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2262/master         
tcp        0      0 192.168.8.125:873       0.0.0.0:*               LISTEN      9155/rsync          
tcp6       0      0 :::22                   :::*                    LISTEN      1300/sshd           
tcp6       0      0 ::1:25                  :::*                    LISTEN      2262/master         

添加path的相应目录:
[root@adai003 grep]# mkdir /tmp/rsync更改目录权限:
[root@adai003 grep]# chmod 777 /tmp/rsync

注: 在配置文件中设定path时注意所给予的权限,安全起见不要直接使用root目录!!!
配置文件中“[]”为模块,里面内容为模块名称,该模块代表的路径即为path指定的路径。

使用服务进行同步

在客户端进行同步:同步到服务端[root@adai002 ~]# rsync -avP /tmp/11.txt 192.168.8.125::test/adai002sending incremental file list11.txt
        1148 100%    0.00kB/s    0:00:00 (xfer#1, to-check=0/1)sent 1218 bytes  received 27 bytes  830.00 bytes/sectotal size is 1148  speedup is 0.92  将服务端数据同步到本机(客户端):[root@adai002 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txtreceiving incremental file listadai002
        1148 100%    1.09MB/s    0:00:00 (xfer#1, to-check=0/1)sent 45 bytes  received 1250 bytes  863.33 bytes/sectotal size is 1148  speedup is 0.89[root@adai002 ~]# ls /tmp/11.txt  123.txt#######################################
在服务端查看同步结果:[root@adai003 ~]# ls /tmp/rsync/adai002完成!

telnet命令

telnet命令用于登录远程主机,对远程主机进行管理。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了。

语法: telnet [options] [参数]

应用: 检测端口是否可通信

[root@adai002 ~]# telnet 192.168.8.125 873Trying 192.168.8.125...
Connected to 192.168.8.125.
Escape character is '^]'.@RSYNCD: 30.0^]  #退出该命令时使用Ctrl+],然后输入quit即可!@ERROR: protocol startup error
Connection closed by foreign host.

10.33 rsync通过服务同步(下)

编辑rsync配置文件,将端口改为port=8730

重启rsync服务

安装killall工具:“yum install -y psmisc”。

杀死所有rsync进程:
[root@adai003 ~]# killall rsync启动:
[root@adai003 ~]# rsync --daemon检测:
[root@adai003 ~]# !psps aux |grep rsync
root      3161  0.0  0.0 114644   548 ?        Ss   09:09   0:00 rsync --daemon
[root@adai003 ~]# !netstatnetstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.8.125:8730      0.0.0.0:*               LISTEN      3161/rsync

进行同步

[root@adai002 ~]# rsync -avP 192.168.8.125::test/adai002 /tmp/123.txtrsync: failed to connect to 192.168.8.125 (192.168.8.125): Connection refused (111)rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.9]

说明: 因未开放873端口,所以此时同步数据会报错!那么如何进行同步呢?方法如下:

[root@adai002 ~]# rsync -avP --port 8730 192.168.8.125::test/adai002 /tmp/123.txtreceiving incremental file list

sent 26 bytes  received 59 bytes  170.00 bytes/sec
total size is 1148  speedup is 13.51

说明: 使用--port选项指定端口号。

10.34 Linux系统日志

  • /var/log/messages 系统总日志

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

  • /var/log/dmesg 系统启动日志

  • /var/log/scure 安全日志文件

dmesg命令

查看系统硬件相关的日志。dmesg命令被用于检查和控制内核的环形缓冲区。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息保存在:/var/log/dmesg文件里。

在该日志中可以查看系统有哪些硬件故障。
语法: dmesg [option]
Options:
-c:清除日志(系统重启会重新生成)
-n:指定记录信息的层级

last命令

last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。

lastb命令

lastb命令用于显示用户错误的登录列表,此指令可以发现系统的登录异常。单独执行lastb命令,它会读取位于/var/log目录下,名称为btmp的文件,并把该文件内容记录的登入失败的用户名单,全部显示出来。(/var/log/btmp)

logrotate命令

logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf文件中。

安装logrotate工具: yum install logrotate crontabs

Logrotate可配置参数,可使用man命令来查询:

compress                        通过gzip压缩转储以后的日志
nocompress                      不压缩
copytruncate                    用于还在打开中的日志文件,把当前日志备份并截断
nocopytruncate                  备份日志文件但是不截断create mode owner group         转储文件,使用指定的文件模式创建新的日志文件
nocreate                        不建立新的日志文件
delaycompress 和 compress        一起使用时,转储的日志文件到下一次转储时才压缩
nodelaycompress                 覆盖 delaycompress 选项,转储同时压缩。errors address                   专储时的错误信息发送到指定的Email 地址
ifempty                         即使是空文件也转储,这个是 logrotate 的缺省选项。
notifempty                      如果是空文件的话,不转储
mail address                    把转储的日志文件发送到指定的E-mail 地址
nomail                          转储时不发送日志文件
olddir directory                转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
noolddir                        转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript             在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
postrotate/endscript            在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
daily                           指定转储周期为每天
weekly                          指定转储周期为每周
monthly                         指定转储周期为每月
rotate count                    指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
tabootext [+] list 让logrotate   不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~ 
size size                       当日志文件到达指定的大小时才转储,bytes(缺省)及KB(sizek)或MB(sizem)

10.35 screen工具

Screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

安装screen工具:yum install -y screen

  • 将一个任务放入后台

# nohup command >[日志文件] 2>[日志文件] &

screen语法:

screen [option] [参数]

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始:

C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
  • 查看当前screen下的任务

[root@adai003 ~]# screen -ls
There is a screen on:	3628.pts-0.adai003	(Detached)1 Socket in /var/run/screen/S-root.
  • 返回screen session

[root@adai003 ~]# screen -r 3628(screen的id)
  • 终止screen:在screen session执行如下命令即可

[root@adai003 ~]# screen -r 3628
  • 为screen指定作业名

[root@adai003 ~]# screen -S "test_screen"

说明: 这样做的目的是方便区分每个screen任务。

扩展:xargs命令

xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。它擅长将标准输入数据转换成命令行参数,xargs能够处理管道或者stdin并将其转换成特定命令的命令参数。xargs也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。xargs的默认命令是echo,空格是默认定界符。这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是构建单行命令的重要组件之一。

xargs命令用法1

xargs用作替换工具,读取输入数据重新格式化后输出。

  • 多行输入单行输出

[root@adai003 ~]# cat test1 23 4a b
c d
[root@adai003 ~]# cat test | xargs1 2 3 4 a b c d
  • xargs -n 指定每行输出单元数量

[root@adai003 ~]# cat test | xargs -n41 2 3 4a b c d
  • xargs -d 指定分隔符

[root@adai003 ~]# echo "test#test#test#test" | xargs -d# -n2test testtest test










本文转自 芬野 51CTO博客,原文链接:http://blog.51cto.com/yuanhaohao/2067674,如需转载请自行联系原作者
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
目录
相关文章
|
5月前
|
存储 监控 算法
防止员工泄密软件中文件访问日志管理的 Go 语言 B + 树算法
B+树凭借高效范围查询与稳定插入删除性能,为防止员工泄密软件提供高响应、可追溯的日志管理方案,显著提升海量文件操作日志的存储与检索效率。
164 2
|
8月前
|
运维 安全 数据可视化
日志审查安排工具实战攻略:中小团队如何通过日志审查安排工具建立可控、安全的审查机制?
在审计敏感时代,日志审查安排工具成为安全运维与合规管理的关键利器。它实现审查任务的流程化、周期化与可视化,支持多系统协作、责任到人,确保“可控、可查、可追”的日志治理。工具如板栗看板、Asana、Monday 等提供任务调度、问题闭环与合规对接能力,助力企业构建高效、透明的日志审查体系,提升安全与合规水平。
|
9月前
|
JavaScript API 开发工具
HarmonyOS NEXT实战:日志工具
本文介绍了在HarmonyOS Next应用开发中,如何封装一个简单易用的日志工具LoggerKit。通过使用系统提供的HiLog API,开发者可以灵活输出不同级别的日志信息(DEBUG、INFO、WARN、ERROR、FATAL),用于分析应用运行状态和调试逻辑问题。文章详细说明了日志级别、参数配置及使用注意事项,并提供了完整的TypeScript封装示例代码,便于实际项目集成与应用调试。
213 0
|
12月前
|
存储 JSON Go
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
256 10
|
运维 应用服务中间件 nginx
docker运维查看指定应用log文件位置和名称
通过本文的方法,您可以更高效地管理和查看Docker容器中的日志文件,确保应用运行状态可控和可监测。
2047 28
|
存储 人工智能 JSON
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
RAG Logger 是一款专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、检索结果记录、LLM 交互记录和性能监控等功能。
557 7
RAG Logger:专为检索增强生成(RAG)应用设计的开源日志工具,支持查询跟踪、性能监控
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
411 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
存储 数据采集 监控
阿里云DTS踩坑经验分享系列|SLS同步至ClickHouse集群
作为强大的日志服务引擎,SLS 积累了用户海量的数据。为了实现数据的自由流通,DTS 开发了以 SLS 为源的数据同步插件。目前,该插件已经支持将数据从 SLS 同步到 ClickHouse。通过这条高效的同步链路,客户不仅能够利用 SLS 卓越的数据采集和处理能力,还能够充分发挥 ClickHouse 在数据分析和查询性能方面的优势,帮助企业显著提高数据查询速度,同时有效降低存储成本,从而在数据驱动决策和资源优化配置上取得更大成效。
577 9
|
前端开发 数据处理 Android开发
Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍
本文深入探讨了Flutter前端开发中的调试技巧与工具使用方法,涵盖调试的重要性、基本技巧如打印日志与断点调试、常用调试工具如Android Studio/VS Code调试器和Flutter Inspector的介绍,以及具体操作步骤、常见问题解决、高级调试技巧、团队协作中的调试应用和未来发展趋势,旨在帮助开发者提高调试效率,提升应用质量。
591 8
|
存储 SQL 关系型数据库
【赵渝强老师】PostgreSQL的运行日志文件
PostgreSQL的物理存储结构包括数据文件、日志文件等。运行日志默认未开启,需配置`postgresql.conf`文件中的相关参数如`log_destination`、`log_directory`等,以记录数据库状态、错误信息等。示例配置中启用了CSV格式日志,便于管理和分析。通过创建表操作,可查看生成的日志文件,了解具体日志内容。
439 3