目录
一、rsync通过服务同步
二、linux系统日志
三、screen工具
一、rsync通过服务同步
这种方式可以理解为:在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后将本机作为rsync的一个客户端连接远程的rsync服务器。
- 首先minglinux-01上修改rsync的配置文件/etc/rsyncd.conf成如下所示:
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.188.128
[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.188.129
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或者网段,如果是多个,中间用空格隔开。
- 启动服务 rsync --daemon
[root@minglinux-01 ~]# vim /etc/rsyncd.conf
[root@minglinux-01 ~]# mkdir /tmp/rsync
[root@minglinux-01 ~]# chmod 777 /tmp/rsync/
[root@minglinux-01 ~]# rsync --daemon
[root@minglinux-01 ~]# ps aux |grep rsync
root 3587 0.0 0.0 114740 564 ? Ss 22:24 0:00 rsyn --daemon
root 3590 0.0 0.0 112720 984 pts/0 S+ 22:25 0:00 grep --color=auto rsync
- 在minglinux-02上测试同步文件
为了不影响实验过程,还需要把两台机器的firewalld服务关闭。注释掉配置文件中密码部分。
systemctl stop firewalld
#auth users=test
#secrets file=/etc/rsyncd.passwd
同步过程:
[root@minglinux-02 ~]# rsync -avP /tmp/a.txt 192.168.162.130::test/ming.txt
sending incremental file list
a.txt
1,092 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=0/1)
sent 1,182 bytes received 35 bytes 2,434.00 bytes/sec
total size is 1,092 speedup is 0.90
[root@minglinux-01 ~]# ls /tmp/rsync/
ming.txt
如果设置use chroot为true,则同步软连接文件会有问题。要把true改为false才能正常同步。
修改完rsyncd.conf配置文件后不需要重启rsyncd服务,这是rsync的一个特定机制,配置文件是即时生效的。
二、linux系统日志
- /var/log/messages
/var/log/messages,它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。I/O错误、网络错误和其他系统错误都会记录到这个文件中。
为防止日志太大,系统使用logrotate 来进行切割。
使用logrotate指令,可让你轻松管理系统所产生的记录文件。
[root@minglinux-01 ~]# ls /var/log/messages*
/var/log/messages /var/log/messages-20181022
/var/log/messages-20181009 /var/log/messages-20181030
/var/log/messages-20181014
- dmesg
dmesg命令它可以显示系统的启动信息。如果你的某个硬件有问题(比如网卡),用这个命令也是可以看到的。
[root@minglinux-01 ~]# dmesg |head
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0-862.11.6.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Tue Aug 14 21:49:04 UTC 2018
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-862.11.6.el7.x86_64 root=UUID=22416a3c-e656-4cea-8cfe-c46e3caaff9c ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8
[ 0.000000] Disabled fast string operations
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
- last命令用来查看登录Linux的历史信息
[root@minglinux-01 ~]# dmesg |head
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0-862.11.6.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) ) #1 SMP Tue Aug 14 21:49:04 UTC 2018
[ 0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-862.11.6.el7.x86_64 root=UUID=22416a3c-e656-4cea-8cfe-c46e3caaff9c ro crashkernel=auto rhgb quiet LANG=zh_CN.UTF-8
[ 0.000000] Disabled fast string operations
[ 0.000000] e820: BIOS-provided physical RAM map:
[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable
[ 0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved
[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved
[root@minglinux-01 ~]#
[root@minglinux-01 ~]# last |head
root pts/0 192.168.162.1 Thu Nov 1 21:50 still logged in
root pts/1 192.168.162.1 Wed Oct 31 21:12 - 23:21 (1+02:08)
root pts/0 192.168.162.1 Tue Oct 30 20:53 - 22:45 (1+01:51)
root pts/1 192.168.162.1 Mon Oct 29 21:09 - 22:50 (1+01:40)
root pts/0 192.168.162.1 Sat Oct 27 01:54 - 22:54 (2+20:59)
root tty1 Sat Oct 27 01:54 still logged in
reboot system boot 3.10.0-862.11.6. Sat Oct 27 01:51 - 23:43 (5+21:52)
root pts/1 192.168.162.1 Sat Oct 27 00:21 - 01:50 (01:29)
root pts/0 192.168.162.1 Sat Oct 27 00:01 - 00:34 (00:33)
root tty1 Fri Oct 26 23:39 - 01:50 (02:11)
上例中,从左至右依次为账户名称、登录终端、登录客户端IP、登录日期及时长。
- xargs 应用
xargs命令是给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具。
[root@minglinux-01 ~]# echo "1" > 1.txt
[root@minglinux-01 ~]# ls 1.txt |xargs cat
1
- exec 应用
exec经常和find命令一起使用,可以达到和xargs同样的效果。比如查找当前目录
创建时间大于10天的文件并删除,如下所示:
find . -mtime +10 -exec rm -rf {} \;
这个命令中是用{}替代前面find出来的文件。后面的\作为;的转义符,否则shell会把分号作为该行命令的结尾。
三、screen工具
简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。
- 使用 nohup
nohup command &命令可以使任务在后台运行,加上nohup后,执行后会在当前目录下生成一个nohup的文件,它的作用就是防止进程意外中断,并且会把输出信息记录到nohup文件中。
直接输入screen命令,就可以
进入一个虚拟终端:
[root@minglinux-01 ~]# screen
bash-4.2#
- screen -ls 查看已经打开的screen会话
bash-4.2# screen -ls
There is a screen on:
4550.pts-0.minglinux-01 (Attached)
1 Socket in /var/run/screen/S-root.
按Ctrl+A键,再按d退出该screen会话(只是退出,并没有结束,结束screen会话要按Ctrl+D键或者输入exit)。
- 使用命令sreen -r [screen 编号],再次登录某个screen会话
[root@minglinux-01 ~]# screen -r 4550
bash-4.2# screen -ls
There is a screen on:
4550.pts-0.minglinux-01 (Attached)
1 Socket in /var/run/screen/S-root.
- screen -S "name" 自定义screen名字
[root@minglinux-01 ~]# screen -ls
There is a screen on:
4550.pts-0.minglinux-01 (Detached)
1 Socket in /var/run/screen/S-root.
[root@minglinux-01 ~]# screen -S "ming"
[detached from 4567.ming]
[root@minglinux-01 ~]# screen -ls
There are screens on:
4567.ming (Detached)
4550.pts-0.minglinux-01 (Detached)
2 Sockets in /var/run/screen/S-root.
当你有某个需要长时间运行的命令,或者脚本时,就打开一个screen会话,然后运行该任务,按Ctrl+A键,
再按d退出会话。这样不影响终端窗口上的任何操作。
扩展
- Linux日志文件总管logrotate http://linux.cn/article-4126-1.html
- xargs用法详解 http://blog.csdn.net/zhangfn2011/article/details/6776925