一、rsync工具介绍
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件
1、命令格式
rsync [OPTION]... SRC DEST
rsync [OPTION]... SRC [USER@]host:DEST
rsync [OPTION]... [USER@]HOST:SRC DEST
rsync [OPTION]... [USER@]HOST::SRC DEST
rsync [OPTION]... SRC [USER@]HOST::DEST
rsync [OPTION]... rsync://[USER@]HOST[:PORT]/SRC [DEST]
对应于以上六种命令格式,rsync有六种不同的工作模式:
1、拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
2、使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
3、使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
4、从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack
5、从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www
6、列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www
[root@ma-1 ~]# rsync -av /etc/passwd /tmp/1.txt (拷贝文件)
sending incremental file list
passwd
sent 1,302 bytes received 35 bytes 2,674.00 bytes/sec
total size is 1,210 speedup is 0.91
[root@ma-1 ~]# rsync -av /etc/passwd root@192.168.1.131:/tmp/2.txt (不同机器之间的拷贝)
The authenticity of host '192.168.1.131 (192.168.1.131)' can't be established.
ECDSA key fingerprint is SHA256:STdBEIz+NrPFNH/nJgIm5hSf5pkwWA5Joyzc67YVMak.
ECDSA key fingerprint is MD5:ee:b4:c6:cb:c5:da:56:fc:df:07:80:bf:41:df:a1:7a.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': y
Please type 'yes' or 'no': yes
Warning: Permanently added '192.168.1.131' (ECDSA) to the list of known hosts.
root@192.168.1.131's password:
sending incremental file list
passwd
sent 1,302 bytes received 35 bytes 116.26 bytes/sec
total size is 1,210 speedup is 0.91
2、rsync常用选项
-a 包含-rtplgoD
-r 同步目录时要加上,类似cp时的-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩
--delete 删除DEST中SRC没有的文件
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
常用选项的操作
1、以awk作为目标目录,以tmp作为原目录,其中awk下cc.txt微软连接文件
[root@ma-1 ~]# ls awk
111 222 aa.txt bb.txt cc.txt test.txt
[root@ma-1 ~]# ls /tmp/
1.txt ipt.txt systemd-private-24846795d5054a449fa8134795b2bf9e-vgauthd.service-911S81
2.txt systemd-private-24846795d5054a449fa8134795b2bf9e-chronyd.service-L0TtHT systemd-private-24846795d5054a449fa8134795b2bf9e-vmtoolsd.service-PVIsGM
将root的awk目录拷贝到tmp下,并更改命称为awk_ma,在目标目录和新目录的后边要加上/
[root@ma-1 ~]# rsync -av /root/awk/ /tmp/awk_ma/
sending incremental file list
created directory /tmp/awk_ma
./
.test.txt
aa.txt
bb.txt
cc.txt -> /tmp/1.txt
test.txt
111/
222/
sent 2,540 bytes received 144 bytes 5,368.00 bytes/sec
total size is 2,149 speedup is 0.80
可以看到目标目录已经存在,并且软链接文件完好
[root@ma-1 ~]# ls /tmp
1.txt awk_ma systemd-private-24846795d5054a449fa8134795b2bf9e-chronyd.service-L0TtHT systemd-private-24846795d5054a449fa8134795b2bf9e-vmtoolsd.service-PVIsGM
2.txt ipt.txt systemd-private-24846795d5054a449fa8134795b2bf9e-vgauthd.service-911S81
[root@ma-1 ~]# ll /tmp/awk_ma/
总用量 4
drwxr-xr-x 2 root root6 6月 12 21:11 111
drwxr-xr-x 2 root root6 6月 12 21:11 222
-rw-r--r-- 1 root root0 6月 12 21:21 aa.txt
-rw-r--r-- 1 root root0 6月 12 21:21 bb.txt
lrwxrwxrwx 1 root root 10 6月 12 21:23 cc.txt -> /tmp/1.txt
-rw-r--r-- 1 root root 1062 6月 2 16:46 test.txt
加上L之后,软链接文件已经不存在,但是cc.txt显示的是之前软链接文件显示的内容
[root@ma-1 ~]# rsync -avL /root/awk/ /tmp/awk_ma/
sending incremental file list
cc.txt
sent 267 bytes received 37 bytes 608.00 bytes/sec
total size is 2,156 speedup is 7.09
[root@ma-1 ~]# ll /tmp/awk_ma/
总用量 8
drwxr-xr-x 2 root root6 6月 12 21:11 111
drwxr-xr-x 2 root root6 6月 12 21:11 222
-rw-r--r-- 1 root root0 6月 12 21:21 aa.txt
-rw-r--r-- 1 root root0 6月 12 21:21 bb.txt
-rw-r--r-- 1 root root 17 6月 12 21:20 cc.txt
-rw-r--r-- 1 root root 1062 6月 2 16:46 test.txt
[root@ma-1 ~]# cat /tmp/awk_ma/cc.txt
maxiaokangshuiqi
[root@ma-1 ~]# cat /tmp/1.txt
maxiaokangshuiqi
2、以awk作为目标目录,以tmp作为原目录,可以看到tmp下多个1.txt文件
[root@ma-1 ~]# ls awk
111 222 aa.txt bb.txt cc.txt test.txt
[root@ma-1 ~]# ls /tmp/awk_ma/
111 222 aa.txt bb.txt cc.txt test.txt
[root@ma-1 ~]# touch /tmp/awk_ma/1.txt
[root@ma-1 ~]# ls /tmp/awk_ma/
111 1.txt 222 aa.txt bb.txt cc.txt test.txt
再重新进行拷贝的时候,添加--delete,会删除原目录中目标目录没有的文件
[root@ma-1 ~]# rsync -av --delete /root/awk/ /tmp/awk_ma/ sending incremental file list deleting 1.txt ./
sent 1,332 bytes received 52 bytes 2,768.00 bytes/sec
total size is 2,149 speedup is 1.55
[root@ma-1 ~]# ls /tmp/awk_ma/
111 222 aa.txt bb.txt cc.txt test.txt
3、以同样的目录作为原目录和目标目录
[root@ma-1 awk]# touch 1.conf 2.conf
[root@ma-1 awk]# ls
111 1.conf 222 2.conf aa.txt bb.txt cc.txt test.txt
[root@ma-1 awk]# cd ~
[root@ma-1 ~]# rm -rf /tmp/awk_ma/*
[root@ma-1 ~]# ls /tmp/awk_ma/
在拷贝时添加--exclude,已达到过滤指定文件的目的,此命令支持多个--exclude命令共同使用
[root@ma-1 ~]# rsync -av --exclude "*txt" /root/awk/ /tmp/awk_ma/
sending incremental file list
./
1.conf
2.conf
111/
222/
sent 219 bytes received 65 bytes 568.00 bytes/sec
total size is 0 speedup is 0.00
[root@ma-1 ~]# ls /tmp/awk_ma/
111 1.conf 222 2.conf
[root@ma-1 ~]# rm -rf /tmp/awk_ma/*
[root@ma-1 ~]# rsync -av --exclude "*txt" --exclude "1*" /root/awk/ /tmp/awk_ma/
sending incremental file list
./
2.conf
222/
sent 143 bytes received 46 bytes 378.00 bytes/sec
total size is 0 speedup is 0.00
[root@ma-1 ~]# ls /tmp/awk_ma/
222 2.conf
4、同样的目标目录和原目录,在选项上加P会显示传输的时间和进度
[root@ma-1 ~]# !rm
rm -rf /tmp/awk_ma/*
[root@ma-1 ~]# ls /tmp/awk_ma/
[root@ma-1 ~]# rsync -avP /root/awk/ /tmp/awk_ma/
sending incremental file list
./
1.conf
0 100%0.00kB/s0:00:00 (xfr#1, to-chk=7/10)
2.conf
0 100%0.00kB/s0:00:00 (xfr#2, to-chk=6/10)
aa.txt
0 100%0.00kB/s0:00:00 (xfr#3, to-chk=5/10)
bb.txt
0 100%0.00kB/s0:00:00 (xfr#4, to-chk=4/10)
cc.txt -> /tmp/1.txt
test.txt
1,062 100%0.00kB/s0:00:00 (xfr#5, to-chk=2/10)
111/
222/
sent 1,541 bytes received 129 bytes 3,340.00 bytes/sec
total size is 2,149 speedup is 1.29
5、编辑原目录/tmp/awk_ma/下的aa.txt,之后继续拷贝,目标目录下的aa.txt会覆盖原目录下的文件
[root@ma-1 ~]# vim /tmp/awk_ma/aa.txt
[root@ma-1 ~]# cat /tmp/awk_ma/aa.txt
jhfdgfaefu
adafdkjashf
asdfhdas
sadgfhiure
[root@ma-1 ~]# rsync -avP /root/awk/ /tmp/awk_ma/
sending incremental file list
./
aa.txt
0 100%0.00kB/s0:00:00 (xfr#1, to-chk=5/10)
sent 306 bytes received 40 bytes 692.00 bytes/sec
total size is 2,149 speedup is 6.21
[root@ma-1 ~]# cat /tmp/awk_ma/aa.txt
[root@ma-1 ~]# vim /tmp/awk_ma/aa.txt
之后重新编辑,加上u选项会防止目标文件覆盖原文件
[root@ma-1 ~]# cat /tmp/awk_ma/aa.txt
ahdfafahfl
ahdfjkahvduiva
hjashdfahfhue
hajkhfur
[root@ma-1 ~]# rsync -avPu /root/awk/ /tmp/awk_ma/
sending incremental file list
./
sent 267 bytes received 21 bytes 576.00 bytes/sec
total size is 2,149 speedup is 7.46
[root@ma-1 ~]# cat /tmp/awk_ma/aa.txt
ahdfafahfl
ahdfjkahvduiva
hjashdfahfhue
hajkhfur
二、rsync通过ssh同步
保证两台机器A和B可以通信,并且都要安装rsync,操作步骤为
1、输入以下命令,test1/为A机器上的目录,192.168.133.132:/tmp/test2/为B机器的ip和目录,别称“推文”。A和B机器的顺序可以相反,如果含有ip的机器在前,则别名为“拉文”
rsync -av test1/ 192.168.133.132:/tmp/test2/
2、当B机器的端口和A机器的端口不一致的话,使用一下命令,加-e选项,22是B机器的端口
rsync -av -e "ssh -p 22" test1/ 192.168.133.132:/tmp/test2/
知识点
1、通过ssh -p 22 192.168.133.132的方式也可以登录其他机器,22为端口,后跟ip
三、rsync通过服务同步
在使用该方法进行同步之前需要先在服务的开启相应服务同时要监听一个端口(可自定义),默认是监听873端口,开启服务之前编辑rsync配置文件“/etc/rsyncd.conf”(将服务添加进去)然后直接使用命令:“rsync–daemon(服务名称)”进行同步。或者将配置文件写到一个自定义文件中,使用命令“rsync –configfile”进行同步。 配置完成后客户端可以通过指定端口与服务端进行通信。这种方式可以理解成这样,在远程主机上建立一个rsync的服务器,在服务器上配置好rsync的各种应用,然后本机作为rsync的一个客户端去连接远程的rsync服务器。如何去配置一台rsync服务器。
准备工作:
服务端 192.168.197.128(主机名mxk-1)
客户端 192.168.197.127 (主机名mxk-002)
配置文件具体步骤:
1.在/etc/rsyncd.conf配置文件中添加服务:
[root@mxk-
1
~]
# vi /etc/rsyncd.conf
port=
873
log
file
=/var/
log
/rsync.
log
pid
file
=/var/
run
/rsyncd.pid
address=
192.168
.197
.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
.197
.127
说明:
shuo其中配置文件分为两部分:全部配置部分和模块配置部分,全局部分就是几个参数而已,就像rsyncd.conf中port, logfile, pid file,address这些都属于全局配置,而[test]以下部分就是模块配置部分了。一个配置文件中可以有多个模块,模块名自定义,格式就像rsyncd.conf中的这样。其实模块中的一些参数例如usechroot, max connections, udi, gid, auth users, secrets file以及hostsallow都可以配置成全局的参数。
参数意义:
port 指定在哪个端口启动rsyncd服务,默认是873;log file 指定日志文件;pid file 指定pid文件,这个文件的作用涉及到服务的启动以及停止等进程管理操作;address 指定启动rsyncd服务的IP,假如你的机器有多个IP,就可以指定其中一个启动rsyncd服务,默认是在全部IP上启动;[test] 指定模块名,自定义;path 指定数据存放的路径;use chroot true|false默认是true,意思是在传输文件以前首先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或者网段,如果是多个,之间用空格隔开;
2.启动服务
[root@mxk-
1
~]
# rsync --daemon
说明:如果想开机启动,请把 rsync --daemon --confg=/etc/rsyncd
.conf
写入到/etc/rc
.d
/rc
.local
文件
说明:如果启动完此服务进程之后,想杀死此进程需要使用killall rsync(语法为 killall 进程名)
3.检测是否启动服务
[root
@mxk
-
1
~]
# ps aux |grep rsync
root
2247
0
.
0
0
.
0
114644
540
? Ss
16
:
42
0
:
00
rsync --daemon
root
2249
0
.
0
0
.
0
112664
972
pts/
0
S+
16
:
42
0
:
00
grep
--color=auto rsync
4.检查监听端口
[root
@mxk
-
1
~]
# netstat -lntp
Active
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
1342
/sshd
tcp
0
0
127.0
.
0
.
1
:
25
0
.
0
.
0
.
0
:*
LISTEN
1979
/master
tcp
0
0
192.168
.
197.128
:
873
0
.
0
.
0
.
0
:*
LISTEN
2247
/rsync
tcp6
0
0
:
:
:
22
:
:
:*
LISTEN
1342
/sshd
tcp6
0
0
:
:
1
:
25
:
:
:*
LISTEN
1979
/master
5. 创建数据存放的路径并赋予权限(也就是配置文件中的path,如果有这个文件就无需创建了)
[root
@mxk
-
1
~]
# mkdir /tmp/rsync
[root
@mxk
-
1
~]
# chmod 777 /tmp/rsync //语法权限方便测试
6.为了不影响实验过程,还需要把两台机器的firewalld服务关闭,并设置成不开机启动。
[root
@mxk
-
1
tmp]
# systemctl stop firewalld //两台机器都需要设置
7.查看873端口是否是通的
[root@mxk-
1
~]
# telnet 192.168.197.128 873
Trying
192.168
.197
.128
...
Connected to
192.168
.197
.128
.
Escape character is
'^]'
.
@RSYNCD:
30.0
^] //按Ctrl+] 退出telnet
7.在mxk-002客户端上测试
[root
@mxk
-
002
]# rsync -avL test
@192
.168
.197
.128
::test/test1/ /tmp/test5/
//将test1同步到mxk-1机器的/tmp/rsync(配置文件中的path设置路径)中,并更改名称为test5
Password:
receiving incremental
file
list
created directory /tmp/test5
./
1
1.
txt
2
2.
txt
3
4
sent
143
bytes received
354
bytes
994.00
bytes/sec
total
size
is
0
speedup is
0.00
注意:
刚刚提到配置文件/etc/rsyncd.conf中有一个选项叫做 “use chroot” 默认为true,如果是true,同步的文件中如果有软连接,则会有问题。如果有软链接需要设置成false即可。修改完rsyncd.conf配置文件后,不需要重启rsyncd服务,这是rsync的一个特定机制,配置文件时即时生效的,不用重启服务。
前面都有输入密码,这样同样也不能写入脚本中自动执行,其实这种方式也是可以不用手动输入密码的,它有两种实现方式。
第一种,指定密码文件
在客户端上,也就是mxk-002上,编辑一个密码文件:
[root
@mxk
-
002
~]
# vim /etc/pass
加入test用户的密码:
[root
@mxk
-
002
~]
# cat /etc/pass
test123
修改密码文件的权限:
[root
@mxk
-
002
~]
# chmod 600 /etc/pass
在同步的时候,指定一下密码文件,就可以省去输入密码的步骤了:
[root
@mxk
-
002
~]# rsync -avL test
@192
.168
.197
.128
::test/test1/ /tmp/test8/ --password-
file
=/etc/pass
receiving incremental
file
list
created directory /tmp/test8
./
1
1.
txt
2
2.
txt
3
4
test.txt
sent
190
bytes received
451
bytes
1282.00
bytes/sec
total
size
is
0
speedup is
0.00
第二种:在rsync服务器端不指定用户
在服务端也就是mxk-1上修改配置文件rsyncd.conf, 去掉关于认证账户的配置项(auth user 和 secrets file这两行)
sed -i
's
/auth users/#auth users/;s/secrets
file
/#secrets
file
/' /etc/rsyncd.conf
上面的这个命令是把 “auth users” 和 “secrets file” 两行的最前面加一个 “#”, 这样就把这两行注释掉,使其失去意义。其实也不难弄明白,只是用分号把两个替换的子命令块给替换了而已。然后我们再到客户端mxk-002测试:
[root@mxk-
002
~]
# rsync -avL 192.168.197.128::test/test1/ /tmp/test9/
receiving incremental
file
list
created directory /tmp/test9
./
1
1.
txt
2
2.
txt
3
4
test.txt
sent
162
bytes received
410
bytes
1144.00
bytes/sec
total size
is
0
speedup
is
0.00
注意,这里不用再加test这个用户了,默认是以root的身份拷贝的,现在已经不需要输入密码了。
更改端口873为8730
1.编辑rsync配置文件(/etc/rsyncd.conf),将端口改为port=8730
2.重启rsync服务
3.安装killall工具:
yum install -y psmisc
4.杀死所有rsync进程:
[root
@mxk
-
1
~]
# killall rsync
5.启动:
[root
@mxk
-
1
~]
# rsync --daemon
6.检测:
[root
@mxk
-
1
~]
# !ps
ps aux |grep rsync
root
3161
0
.
0
0
.
0
114644
548
?
Ss
09
:
09
0
:
00
rsync --daemon
[root
@mxk
-
1
~]
# !netstat
netstat -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@mxk-
002
~]
# rsync -avP 192.168.197.128::test/adai002 /tmp/123.txt
rsync: failed
to
connect
to
192.168
.197
.128
(
192.168
.197
.128
): Connection refused (
111
)
rsync
error
:
error
in
socket IO (code
10
)
at
clientserver.c(
122
) [Receiver=
3.0
.9
]
说明: 因未开放873端口,所以此时同步数据会报错!那么如何进行同步呢?方法如下:
[root@mxk-
002
~]
# rsync -avP --port 8730 192.168.8.125::test/adai002 /tmp/123.txt
receiving incremental
file
list
sent
26
bytes received
59
bytes
170.00
bytes/sec
total size
is
1148
speedup
is
13.51
说明: 使用–port选项指定端口号。
四、linux系统日志。
日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。
常查看的日志文件为/var/log/message, 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息
1、var/log/messages:
系统总日志,好多信息都记录在这个文件中。除非某项服务有定义单独的日志。这个日志每天都会写,久而久之就会很大。所以系统有一个日志切割机制,当日志增长到一定级别后就会自动切割。
[root@mxk-1 ~]# ls /var/log/messages*
/var/log/messages /var/log/messages-20180305 /var/log/messages-20180311 /var/log/messages-20180320 /var/log/messages-20180328
我们可以看到这些日志后面都跟了一些日期,这就证明它是按日期切割的,那他是这样做到的呢?
logrotate,他就是用来切割日志的,为了防止日志无限制的增加。它的配置文件/etc/logrotate.conf。
dmesg命令
将系统里面的硬件先关的日志列出来,它保存在内存中,它并不是一个文件。比如我们的硬盘或者网卡出现问题,他都会记录在这里。我们除了看/var/log/messages外,还要运行这个命令查看硬件的故障和错误。参数-c可以清空内容,但重启后又会自动添加内容。
/var/log/dmesg
这是一个日志文件,他是记录系统启动的日志,和dmesg命令没有关系。
last命令,调用的文件/var/log/wtmp
用来查看正确的登陆历史,他是一个二进制文件,不能cat查看,只能用last来查看。
lastb命令查看登录失败的用户,对应的文件时/var/log/btmp /var/log/secure
他是记录登录失败的日志。他也是一个二进制文件,不能cat查看。
/var/log/secure安全日志
他会记录登录相关以及pam相关等等的日志。如果有人暴力破解我们设备,那么也会记录到这个文件中。
五、screen工具介绍
在工作中,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。
1、使用nohup
[root
@mxk-1
~]# vim /usr/local/sbin/sleep.sh
[root
@mxk-1
~]# cat !$
cat /usr/local/sbin/sleep.sh
#! /bin/bash
sleep
1000
[root
@mxk-1
~]# nohup sh /usr/local/sbin/sleep.sh &
[
1
]
3703
直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup的作用就是不挂断地运行命令。
2、screen工具的使用
简单来说,screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的SSH连接窗口那样。
1、打开一个会话,直接输入screen命令然后回车,进入screen会话窗口。如果你没有screen命令,就安装下:
[root
@mxk-1
~]# screen
-bash: screen: 未找到命令
[root
@mxk-1
~]# yum install -y screen
然后输入screen就进入到screen会话窗口,在会话窗口查看已经打开的会话:
[root
@mxk-1
~]# screen -ls
There is a screen on:
3754
.pts-
0
.mxk-1 (Attached)
1
Socket in /var/run/screen/S-root.
Ctrl +a 再按d退出该screen会话,只是退出,并没有结束。结束的话输入Ctrl +d 或者输入exit。
退出后还想再次登录某个screen会话,使用
sreen -r [screen 编号],这个编号就是上例中那个3754。当只有一个screen会话时,后面的编号是可以省略的。当你有某个需要长时间运行的命令或者脚本时就打开一个screen会话,然后运行该任务。按ctrl +a 再按d退出会话,不影响终端窗口上的任何操作。