rsync通过服务同步,Linux系统日志,screen工具

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

rsync还可以通过服务的方式同步,这种方式首先需要开启一个服务,服务是cs架构的,也就是客户端和服务端。服务端要开启一个rsync服务,并且需要监听一个端口,默认是873端口,这个端口是可以自定义的,然后客户端可以通过这个端口与服务端进行通信,得以传输数据。

启动服务之前要编辑配置文件,这个配置文件的路径是:/etc/rsyncd.conf ,配置的信息不一定必须要写在这个路径的文件里,也可以写在其他的文件里,不过在开启服务的时候就得加上--configfile=配置文件的路径,加上这个参数是为了指定配置文件的路径,如果是写在/etc/rsyncd.conf文件里,则不需要指定配置文件的路径。

rsyncd.conf文件配置样例

port=873

log file=/var/log/rsync.log

pid file=/var/run/rsyncd.pid

address=192.168.77.130

[test]

path=/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.77.132 1.1.1.1 2.2.2.2  192.168.77.0/24

 

  把配置样例粘贴到/etc/rsyncd.conf文件里:

wKiom1nl-AjhzTouAArSdrcWvOo066.png


保存退出后,启动服务:

wKioL1nl9VOT6bUQAAD9l5xNuSA941.png


检测一下服务是否已启动:

wKioL1nl9VPSikUTAAJOO-hVuAg431.png


检查一下监听的端口:

wKiom1nl-AqRWasyAAP3P95pEJ0092.png


tmp目录下创建rsync目录,并设置为777权限:

wKiom1nl-Avg7mx9AAExyBdxec4803.png


现在我要在在另一台机器同步文件过来,得执行下面这条命令:

  rsync -avP /tmp/1.txt 192.168.77.130::test/123.txt

wKioL1nl9VawzpmHAAKCSQQ4-Co668.png


如果出现以上错误就ping一下另一台机器是否能通,能ping通的话就检查一下端口是否能通。

telnet命令可以检测某个端口是否是通的,如果没有这个命令的话就安装一下:

安装命令:yum install -y telnet

  检测端口:

wKioL1nl9VfyB_MxAAIZRvClzDc653.png


端口不通的话,检测一下是否是iptables的问题:

wKiom1nl-A-RXBh-AAVSOjFaSmA348.png


这是没问题的,那么就检测另一台机器的iptables

wKiom1nl-BTDovvlAAt0Px1CeCM447.png

显示以上这种信息,就证明是这台机器的iptables问题。


停掉这台机器的firewalld服务:

wKiom1nl-BTyWXOSAAD8kA67E6U701.png


现在再回到另一台机器检测一下端口:

wKioL1nl9V_zVsgJAAI01eNTn4o158.png

显示以上结果则表示没问题的。


Ctrl + ]再输入quit退出端口检测:

wKiom1nl-BeSLKtAAANpL32Ypv8187.png


处理完以上问题后,就可以执行rsync命令了:

wKioL1nl9WHCfnYGAAKTqh_700c402.png


如果不想输入密码的话,就把配置文件里这这两行注释掉:

wKioL1nl9WPyiBgZAARHhB71lrQ201.png


现在就可以不需要密码传输文件了:

wKiom1nl-BqQ5466AARafKZ3L0s532.png


在充当服务端的机器上就能看到同步的文件了:

wKioL1nl9WWDklfAAAEfq9rW7t4574.png


同样的我们也可以从服务端上同步文件:

wKiom1nl-B2TjUc7AAV06hq7G-Y685.png



wKioL1nl9WvTjVpwAAcmqNLiaJo761.png


use chroottrue的情况下,你要同步的目录里有软链接的话,并且你rsync命令里加上了-L选项的话,那么同步此目录的时候,软链接文件会同步失败。

  例如我在源目录里创建了一个软链接文件:

wKiom1nl-CHACf93AALFOFOdJOI736.png


然后如果我rsync命令里不加-L选项进行同步的话,是不会出问题的:

wKiom1nl-COwQC92AAVQXheqfRw026.png


但是如果加了-L就会出现错误:

wKiom1nl-ZKwG4NAAAVJkW3sS5c669.png


如果修改了端口号的话,那么在同步的时候需要加上--port选项指定端口号。

  例如我在配置文件里端口号更改为8730

wKiom1nl-ZTwU5iDAAPlbNVlLkw780.png


重启一下服务,端口才会更新:

wKioL1nl9uGRJXpqAAZweXlv-U8725.png


加上--port选项指定端口号:

wKiom1nl-Znhj6gzAAQWfqYXuj4253.png




wKioL1nl9ujiQjfsAAjHA5l5hOo864.png


列出服务端的可用模块:

wKiom1nl-Z6QeJgkAAGDhja45SA905.png

如果listfalse的话,这个是列不出来的。

 

  在同步时需要输入用户和密码的话,就把刚刚注释的auth userssecrets file恢复,然后在auth users行指定用户名,secrets file行指定用户的密码文件路径:

wKioL1nl9uuS2AW2AAQ3T7JAQqs453.png


然后给test用户指定一个密码,需要编辑一下test用户的密码文件:

vim /etc/rsyncd.passwd

  内容格式如下:

wKioL1nl9uvgoVYIAAB_g-tEwak579.png

然后把此文件的权限改为600

wKiom1nl-aGjr0yKAAFC4dMsP5M271.png


这时候再同步的话就需要输入test用户名和密码了:

wKioL1nl9u_z46ZeAAZh3PNkGg0155.png


但是这样挺麻烦的每次都需要输入密码,但是跳过密码又不太安全,这时候要想解决这个问题,可以在客户端上也创建一个密码文件,这个密码文件里保存着test用户的密码,在使用rsync命令同步的时候只要加上--password-file=密码文件路径,这个参数即可不需要输入密码:

创建密码文件:vi /etc/rsync_pass.txt

  内容格式,直接写上密码即可:

wKiom1nl-aWicgB0AAB8_K8E3Gg499.png

然后把此文件的权限也改为600

wKioL1nl9u_BVtJiAAE_mc5r8io282.png


这时候再同步的话就不需要输入test用户的密码了:

wKiom1nl-afDhaKpAAN9zJrcQlI821.png


hosts allow这一行是用于指定允许连接你服务端的IP,指定多个则空一格即可,也可以指定IP端。





10.34 linux系统日志

wKiom1nl-auRpEIUAAkdtYu8CIQ801.png


因为Linux系统最常用于作为服务器的操作系统,所以在系统中会存在着相当多的服务,有时候当一个服务启动不了或者出现一些问题,就可以去查看日志文件,日志往往会记录着服务启动、运行、停止的信息,还有错误信息,有时候报错不一定会显示在屏幕上,而是会显示在日志里,所以要学会查看日志。

我们先来看看Linux系统里有哪些重要的日志:

  第一个是/var/log/messages,这个日志是Linux系统里一个汇总的日志,很多信息都记录在这个日志里,如果服务没有指定单独的日志文件的话,都会记录在这个日志里,其实这就是个系统日志。

wKioL1nl9vWwLWDlAAFNwcKSi-8952.png


Linux系统里会有一个日志切割机制,当日志文件大小增涨到一定的程度,就会对这个日志进行切割:

wKiom1nl-avxIwSrAAFKAxNQknM022.png

这些日志切割是由logrotate服务来完成的,为了防止日志文件大小无限制的增加,所以会有这样的一个切割机制。

  /etc/logrotate.conflogrotate服务的配置文件,内容如下:

wKiom1nl-bLziLjfAA4nB3C9ghk796.png


其他配置文件:

wKiom1nl-bOxVfn1AAEbKEPCIK0258.png


syslog文件内容:

wKioL1nl9wCxlQtlAAa13tvJ3u0583.png

Linux服务写文件的时候是根据文件的inode号去写的,而不是根据文件名,所以需要重新加载服务。

 

  dmesg命令会把系统里硬件相关的日志列出来,这个日志是保存在内存中的,并不是一个文件:

wKiom1nl-byzeaE4AAzR98FM45Y586.png

硬盘、网卡等等硬件出问题了,都会记录在这个日志里


dmesg -c可以清空这些日志内容,清空时会再打印一遍。

 

  第二个是/var/log/dmesg 日志文件,这个日志dmesg 命令没有关联,这是一个系统启动日志,会记录系统启动时的相关信息:

wKioL1nl9wfxvoidAAEQAdinUEE162.png


last命令,用来查看系统正确的登录历史,这个命令调用的是/var/log/wtmp文件,这个文件是二进制文件,所以要用last来查看:

wKiom1nl-cTjGzGhAA_oRMOgROE245.png


  和last命令对应的是lastb命令,这个命令则是查看系统登录失败的历史信息,同样的这个命令也会调用一个文件,这个文件是/var/log/btmp文件,这也是一个二进制文件:

wKioL1nl9w-i5yWLAAMumb_Ucjw944.png

当你的系统被人暴力破解的时候,这里就会记录很多日志信息。


/var/log/secure是一个安全日志:

wKioL1nl9xDiTrgcAAEc63P4Lyc607.png


无论系统登录成功或者失败的信息都会被记录到这个日志文件里:

wKioL1nl9xXziEo_AAe2hq_sTpE233.png


如果登录失败就会有这样一个信息,还会把IP给记录下来:

wKiom1nl-cvgc_LqAAKk_tsQyvc806.png





10.35 screen工具

wKioL1nl9xyRe67GAA1RVtCLLY4468.png



screen是一个虚拟的终端,我们假设一个需求要执行一个脚本,这个脚本执行时间很长可能要一天一夜,而且这个脚本会输出一些信息出来,所以不能中断,为了保证脚本执行的过程不中断,有两个办法可以解决这个问题,第一个办法是丢到后台里去然后加一个日志的输出,这个方式虽然解决了任务中断的问题,但是我们却无法实时在屏幕上查看到任务的输出信息。第二个办法就是使用screen虚拟终端,把这个脚本放到虚拟终端去执行。

screen安装命令:yum install -y screen

安装完之后,执行screen命令,就会进入到虚拟终端。

  现在我在虚拟终端里执行vmstat命令,每秒输出一次信息:

wKiom1nl-dOh9smvAAOX2Dr7fOs513.png


然后再把这个命令的进程扔到后台里,会退回到真实终端并且会打印一个信息出来,表示有个进程在虚拟终端里运行着:

wKiom1nl-fnxwJI1AAIfappcpSk882.png

Ctrl + a之后再按d,可以将一个进程扔到后台里去。


screen -ls命令可以列出在虚拟终端里运行着的进程:

wKiom1nl-frwrhW9AAH0bBoSmxQ285.png


想要返回到虚拟终端里的话,使用screen -r 然后加上进程的id即可:

wKioL1nl90WTedPXAAJGQxrpVfg225.png


exit可以关闭screen虚拟终端,同样的会有一行信息:

wKioL1nl90XQMSoLAAB23YfmFbY715.png


  screen可以有多个,也就是可以执行多次screen命令产生多个虚拟终端,使用screen -lsn可以列出这些虚拟终端的数量:

wKioL1nl90iTUAG2AAXDNBXqDV0023.png


同样的想要进入哪个screen,指定它的id即可:

wKiom1nl-f7wFIThAAL6DdpVc58983.png


但是有一个问题,就是时间久了之后可能会忘记这个screen是干什么用的了,因为它们除了id之外名字都是一样的。这时候就需要使用到-S选项,这个选项可以自定义screen的名字:

wKioL1nl90izOKyAAADxArvuIoQ048.png


这样使用screen -ls列出这些screen的是时候就知道是干嘛的了:

wKiom1nl-gDydxC0AAQBFLl2wxE806.png


这时候使用screen -r 命令就可以指定screen名称来进入这个screen

wKioL1nl90vCwLc2AAMSAdaoJv8057.png




本文转自 ZeroOne01 51CTO博客,原文链接:http://blog.51cto.com/zero01/1973517,如需转载请自行联系原作者

相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
5月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
391 25
|
6月前
|
Ubuntu Linux
Linux系统管理:服务器时间与网络时间同步技巧。
以上就是在Linux服务器上设置时间同步的方式。然而,要正确运用这些知识,需要理解其背后的工作原理:服务器根据网络中的其他机器的时间进行校对,逐步地精确自己的系统时间,就像一只犹豫不决的啮齿动物,通过观察其他啮齿动物的行为,逐渐确定自己的行为逻辑,既简单,又有趣。最后希望这个过程既能给你带来乐趣,也能提高你作为系统管理员的专业素养。
1033 20
|
6月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
6月前
|
Linux iOS开发 MacOS
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
147 0
Gitea Enterprise 23.4.0 (Linux, macOS, Windows) - 本地部署的企业级 Git 服务
|
8月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
571 19
|
8月前
|
监控 Linux
Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
通过以上步骤,可以有效解决 systemd 服务启动失败并报错 `Main process exited, code=exited, status=203/EXEC` 的问题。关键在于仔细检查单元文件配置、验证可执行文件的有效性,并通过日志分析具体错误原因。确保可执行文件路径正确、文件具有执行权限,并且可以独立运行,将有助于快速定位和解决问题。
3747 7
|
9月前
|
存储 运维 监控
Linux--深入理与解linux文件系统与日志文件分析
深入理解 Linux 文件系统和日志文件分析,对于系统管理员和运维工程师来说至关重要。文件系统管理涉及到文件的组织、存储和检索,而日志文件则记录了系统和应用的运行状态,是排查故障和维护系统的重要依据。通过掌握文件系统和日志文件的管理和分析技能,可以有效提升系统的稳定性和安全性。
211 7
|
9月前
|
监控 安全 Linux
启用Linux防火墙日志记录和分析功能
为iptables启用日志记录对于监控进出流量至关重要
278 1
|
10月前
|
Linux 应用服务中间件 Shell
linux系统服务二!
本文详细介绍了Linux系统的启动流程,包括CentOS 7的具体启动步骤,从BIOS自检到加载内核、启动systemd程序等。同时,文章还对比了CentOS 6和CentOS 7的启动流程,分析了启动过程中的耗时情况。接着,文章讲解了Linux的运行级别及其管理命令,systemd的基本概念、优势及常用命令,并提供了自定义systemd启动文件的示例。最后,文章介绍了单用户模式和救援模式的使用方法,包括如何找回忘记的密码和修复启动故障。
193 5
linux系统服务二!
|
10月前
|
Linux 应用服务中间件 Shell
linux系统服务!!!
本文详细介绍了Linux系统(以CentOS7为例)的启动流程,包括BIOS自检、读取MBR信息、加载Grub菜单、加载内核及驱动程序、启动systemd程序加载必要文件等五个主要步骤。同时,文章还对比了CentOS6和CentOS7的启动流程图,并分析了启动流程的耗时。此外,文中还讲解了Linux的运行级别、systemd的基本概念及其优势,以及如何使用systemd管理服务。最后,文章提供了单用户模式和救援模式的实战案例,帮助读者理解如何在系统启动出现问题时进行修复。
166 3
linux系统服务!!!