GVKun编程网logo

Linux Screen 超简单用法(linux中screen)

1

在这里,我们将给大家分享关于LinuxScreen超简单用法的知识,让您更了解linux中screen的本质,同时也会涉及到如何更有效地0420日常运维(四)rsync工具、linux系统日志、scr

在这里,我们将给大家分享关于Linux Screen 超简单用法的知识,让您更了解linux中screen的本质,同时也会涉及到如何更有效地0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具、77.Linux 系统日志,screen 工具介绍、@media only screen 和 @media screen 查询哪个是更好的选择、gnu-screen – 如何在CentOS 5.7上获得TERM = screen-256color?的内容。

本文目录一览:

Linux Screen 超简单用法(linux中screen)

Linux Screen 超简单用法(linux中screen)

 

场景:ssh 连接到远程服务器上,临时开一个 Jetty 的 HTTP 服务,但是 PUTTY 没多久就自己 inactive 了,很不方便。想找个方法让程序一直运行在后台,想关闭的时候再连一次 PUTTY 去关。

查了一下用 screen 可以很方便的进行这个操作,有点像虚拟屏幕的管理。

用法:非常简单,只要在原始的命令之前加上 screen 即可:

$screen java -jar xxxx.jar

其他功能:

查看当前全部的 screen :

$screen -ls

会显示下面的信息:

There are screens on:
        1542.pts-1.AY1212021007126539381        (01/30/2013 03:29:06 PM)       (Detached)
        1434.pts-1.AY1212021007126539381        (01/30/2013 03:13:56 PM)       (Attached)
2 Sockets in /var/run/screen/S-user.

其中每一条最前面的就是 screen 的 id

连接到 detached 的 screen :

$screen -r 1542

从 screen 中退出(但不关闭 screen 进程):

按 Ctrl-A-D

在 screen 中查看全部命令;

按 Ctrl-A-?

0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具

0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具

 

4 月 20 日任务:
10.28 rsync 工具介绍
10.29/10.30 rsync 常用选项
10.31 rsync 通过 ssh 同步
10.32/10.33 rsync 通过服务同步
10.34 linux 系统日志
10.35 screen 工具

扩展
1. Linux 日志文件总管 logrotate  http://linux.cn/article-4126-1.html
2. xargs 用法详解 http://blog.csdn.net/zhangfn2011/article/details/6776925

 

 

rsync 的使用场景

日志切割工具 logrotate
https://linux.cn/article-4126-1.html

xargs
https://blog.csdn.net/gb4215287/article/details/78037520

 

 

1、rsync 工具介绍

Linux 系统下有很多数据备份工具,常用的是 rsync, 从字面意思理解为 remote sync (远程同步)。rsync 不仅可以远程同步数据(类似 scp),而且可以本地同步数据(类似于 cp),但不同 cp 或者 scp 的一点是,它不会覆盖以前的数据 (如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

rsync 是一款快速且功能非常多的文件复制工具。它可以在本地复制,通过任何远程 shell 或从另一台主机复制到 / 从远程 rsync 守护进程。它提供了大量的选项控制其行为的每个方面并允许非常灵活指定要复制的文件集。它是著名的其增量转 换算法,可减少发送的数据量通过发送只有来源之间的差异在网络上文件和目标中的现有文件。rsync 很广泛用于备份 和镜像以及作为改进的复制命令日常使用。

 

安装 rsync     yum install -y rsync

 

rsync -av /etc/passwd/tmp/1.txt       把 /etc/passwd 拷贝到 tmp / 下并改名叫 1.txt

上面命令中:
a 参数中包含了很多选项
v 查看到可视化过程;查看到发送了多少字节;多少字节每秒;文件一共有多大;速度是多少

 

rsync -av /etc/passwd root@192.168.86.31:/tmp/1.txt        远程复制,输入用户的密码后,可以拷贝

这里要求远程的机器也必须按照 rsync, 需要验证密码是因为这里没有做两机互联

 

rsync 格式  

rsync [OPTION] … SRC   DEST    本机的

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

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

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

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

OPTION 是选项 (a,v),SRC 是源文件或目录,DEST 是目标目录或者文件;[USER@] host 是远程服务器,host 代表 IP,[USER@] 可以省略,如果不写用户名,默认会以当前终端的用户执行

 

2、 rsync 常用选项

-a 包含 - r t p l g o D 参数选项
 -r 同步目录时要加上,类似 cp 时的 - r 选项
 -v 同步时显示一些信息,让我们知道同步的过程
 -l 保留软连接,若是拷贝的原目录里面有一个软链接文件,那这个软链接文件指向到了另外一个目录 下。在加上 - l, 它会把软链接文件本身拷贝到目标目录里面去
 -L 加上该选项后,同步软链接时会把源文件给同步,(可以把软连接所指向的源文件拷贝过去)
 -p 保持文件的权限属性
 -o 保持文件的属主(如果 A 是 www 用户所有者,过去 B 一样是 www 用户,如果 B 没有 www 用户,会显示成数字,有 user1 的话就显示成 user1)
 -g 保持文件的属组
 -D 保持设备文件信息,/dev/sdb1 这样的设备文件有它的特殊性,如果不加 - D 可能拷贝过去就是一个 非常普通的文件,不能当设备来用
 -t 保持文件的时间属性
 --delete 删除 DEST(目标目录)中 SRC(源目录)没有的文件
 --exclude 过滤指定文件,如 --exclude “logs” 会把文件名包含 logs 的文件或者目录过滤掉,不同步。可以写多个 --exclude
 -P 显示同步过程,比如速率,比 - v 更加详细
 --progress 同 - P 功能一样
 -u 加上该选项后,如果 DEST(目标目录)中的文件比 SRC(源目录里的文件)新,则不同步
 -z 传输时压缩
 常用选项较多,常用的有:a,-v,-z,--delete 和 --exclude

123 目录作为源,tmp 做目标目录

 rsync -av /root/123//tmp/123_dest/   同步一个目录,把 root 下的 123 目录同步到 tmp 下并改名为 123_dest

 rsync -avL --delete /root/123//tmp/123_dest/          --delete 删除多余的文件

 rsync -avP  /root/123//tmp/123_dest/            P 显示同步过程

3、rsync 通过 ssh 同步

rsync 通过 ssh 方式同步,从 A 机器到 B 机器,通过 ssh 的方式去传输

rsync -av test1/ 192.168.86.31:/tmp/test2/                推文件,192.168.86.31 是目标 IP,并且这台机器也需要安装 rsync

rsync -avP 192.168.86.31:/tmp/test2/  /tmp/test1/    拉文件,把远程文件拉回到本机

如果对方机器的端口不是 22:

rsync -av -e "ssh -p 22" test1/ 192.168.86.31:/tmp/test2/      (ssh -p 22) 是一个命令指定端口,可以连接对方的指定端口

ssh -p 192.168.86.31  也可以这样去连接对方机器

4、rsync 通过服务同步

rsync 通过服务的方式同步  ,默认端口是 873

要编辑配置文件 /etc/rsyncd.conf  

启动服务 rsync --daemon  

格式:rsync -av /root/123/ 192.168.228.31::test/tobe.txt   两个 ::test    //test 表示 [test] 模块名路径 /tmp/rsync

 

rsyncd.conf 样例,把下列内容放到 /etc/rsyncd.conf 配置文件中
port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.86.3
[test]                                //[test] 模块名
path=/tmp/rsync           // 目录为实验目录 /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.86.31

然后 rsync --daemon 启动服务,通过 ps aux |grep rsync 查看服务是否启动

netstat -lntp        查看监听的端口是 873,如果不写监听的 IP,就会绑定 0.0.0.0 全部网段,全部 IP 为 873

 mkdir /tmp/rsync  创建实验目录

chmod 777 /tmp/rsync/  更改权限

yum install -y telnet   安装 telnet

telnet 192.168.228.31 873  检测端口是否通畅,下方的端口不通

关闭 firewalld        

systemctl stop firewalld.service

在 B 机器上给服务器写文件

rsync -av /root/123/ 192.168.228.3::test/tobe.txt

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 或者网段,如果是多个,中间用空格隔开。

 use chroot=true|false 当有软链接,需要给其定义为 false; 

当设置了 auth users 和 secrets file 后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件  

rsync -avL test@192.168.133.130::test/test1/  /tmp/test8/ --password-file=/etc/pass  

其中 /etc/pass 内容就是一个密码,权限要改为 600

 

第一步、在服务端,创建一个软连接

第二步、修改配置文件  vim /etc/rsyncd.conf

第三步、在另一个客户端同步 test 模块
rsync -avLP  192.168.176.31::test//tmp/test/        从服务的传输到 test 目录

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

secrets file:指定密码文件

5、Linux 系统日志

曰志记录了系统每天发生的各种各样的事情,比如监测系统状况、排查系统故障等,可以通过他来检查错误发生的原因。日志的主要功能是审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。

 

/var/log/messages   

系统日常日志 /var/log/messages 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态 消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为 root 以及用 户自定义安装的软件 (apache) 的日志也会在这里列出。

在查看曰志的时候,会发现曰志自动切割了 ls /var/log/messages*

 

linux 系统中有一个 logrotate 服务,会自动切割日志,防止无限制的增加。

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

查看  cat /etc/logrotate.d/syslog

syslog 文件会为 cron, maillog, messages, secure, spooled 这几个日志进行切割
messages 日志是由 syslogd 服务决定的,所以 kill -HUP 就会重新加载这个日志 
还有一个脚本,shell 命令行,在把日志切割后(挪走),改名字生成新的日志
Linux 系统有一个特点,一个服务写一个文件的时候,并不是按照文件名去写的,而是根据 inode 来写的

 

dmesg 命令和 dmesg 日志
dmesg 命令,会把系统硬件相关的日志列出来

这个日志是保存在内存中的,并不是一个文件;假如你的网卡有问题了,硬盘损坏了,都会记录在这个日 志中
dmesg -c 清空当前日志;但是一重启这个系统,又会生成这些日志

 

/var/log/dmesg 日志

注意:这个日志文件和 dmesg 命令没有任何关联;它是系统启动的一个日志,记录的信息

 

last 命令,调用的文件 /var/log/wtmp

last 命令,查看你正确的登陆历史

它调用的文件 /var/log/wtmp。
里面记录的是谁,在哪里,来源 IP, 时间,登录的时长都会有记录 
 /var/log/wtmp 日志是一个二进制文件,不能直接 cat 查看,只能用 last 命令去查看

 

lastb 命令查看登录失败的用户,对应的文件时 /var/log/btmp

对应的文件时 /var/log/btmp 日志 
 /var/log/btmp 也是二进制文件,不能直接 cat 的

 

安全日志

/var/log/secure   登陆操作系统,验证成功会在这里记录要给日志,失败也会记录

6、screen 工具   虚拟终端

有时候我们需要执行一个命令或脚本,需要几小时甚至几天,在这个过程中,如果中途断网或者出现有其他意外情况怎么办,当然也可以把命令或者脚本放到后台运行,不过不保险,无法在屏幕上随时查看,这就要用到虚拟终端 screen。
单个 screen, 建立、退出

首先安装 screen 包   : yum install -y screen

输入 screen 直接回车就进入了虚拟终端

ctrl+a ,再按 d, 退出虚拟终端,但不是结束

screen -ls   查看已打开的 screen 会话

退出后,如果想再次登入某个 screen 会话,可以使用的是 screen -r  id  进入指定的终端

exit, 可以直接退出 screen 会话

如果有多个 screen 会话,可以通过 id 进入指定的会话

如果 screen 太多,却不知道其功能作用,需要命令和定义

screen -S "test_screen" 定义一个自定义的名字 - S

 

77.Linux 系统日志,screen 工具介绍

77.Linux 系统日志,screen 工具介绍

Linux 系统日志

日志重要吗?必须的,没有日志我们怎么知道系统状况?没有日志如何排查一个 trouble?日志记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到 *** 时 *** 者留下的痕迹。日志主要的功能有:审计和监测,还可以实时的监测系统状态,监测和追踪侵入者等等。
常查看的日志文件为 /var/log/message, 它是核心系统日志文件,包含了系统启动时的引导消息,以及系统运行时的其他状态消息。IO 错误、网络错误和其他系统错误都会记录到这个文件中。另外其他信息,比如某个人的身份切换为 root 以及用户自定义安装的软件(apache)的日志也会在这里列出。通常,/var/log/messages 是在做故障诊断时首先要查看的文件。系统有一个日志轮询的机制,每星期切换一个日志,变成 message.xxxxxxxx, message.xxxxxxxx, ... messages.xxxxxxxx 连同 messages 一共有 5 个这样的日志文件。这里的 xxxxxxxx 就是按照日期的格式生成的文件,这是通过 logrotate 工具的控制来实现的,它的配置文件是 /etc/logrotate.conf 如果没有特殊需求请不要修改这个配置文件。

[root@localhost ~]#cat /etc/logrotate.conf 
# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we''ll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.
/var/log/messages是由syslogd这个守护进程产生的,如果停掉这个服务则系统不会产生/var/log/messages,所以这个服务不要停。Syslogd服务的配置文件为/etc/syslog.conf这个文件定义了日志的级别,有需求使用man syslog.conf获得更多关于它的信息。
除了关注/var/log/messages外,你还应该多关注一下dmesg这个命令,它可以显示系统的启动信息,如果你的某个硬件有问题(比如说网卡)用这个命令也是可以看到的。
[root@localhost ~]# 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-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-514.el7.x86_64 root=UUID=1cec20ae-09f9-4d50-a2eb-5c1b1a4ab741 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 命令:

[root@localhost ~]#last |head
root pts/0 192.168.204.1 Wed Jan 31 16:45 still logged in
root tty1 Wed Jan 24 22:57 still logged in
root pts/0 192.168.204.1 Wed Jan 24 20:09 - 22:39 (02:30)
reboot system boot 3.10.0-514.el7.x Wed Jan 24 20:08 - 18:09 (6+22:01)
root pts/0 192.168.204.1 Wed Jan 24 19:57 - down (00:11)
reboot system boot 3.10.0-514.el7.x Wed Jan 24 19:57 - 20:08 (00:11)
root pts/0 192.168.204.1 Wed Jan 24 18:20 - 19:56 (01:36)
root pts/0 192.168.204.1 Wed Jan 24 16:58 - 18:20 (01:21)
root pts/1 192.168.204.1 Tue Jan 23 17:30 - 18:19 (00:48)
root pts/0 192.168.204.1 Tue Jan 23 16:48 - 18:19 (01:30)
last 命令用来查看登录 Linux 历史信息,从左至右依次为账户名称、登录终端、登录客户端 ip、登录日期及时长。last 命令输出的信息实际上是读取了二进制日志文件 /var/log/wtmp, 只是这个文件不能直接使用 cat, vim, head, tail 等工具查看。
另外一个和登陆信息有关的日志文件为 /var/log/secure, 该日志文件记录验证和授权等方面的信息,比如 ssh 登陆系统成功或者失败,都会把相关信息记录在这个日志里。











screen 工具介绍

在工作中,我们也许会有这样的需求,要执行一个命令或者脚本,但是需要几个小时甚至几天。这就要考虑一个问题,就是中途断网或出现其他意外情况,执行的任务中断了怎么办?你可以把命令或者脚本丢到后台运行,不过也不保险。下面就介绍两种方法来避免这样的问题发生。

1、使用 nohup

[root@zlinux ~]# vim /usr/local/sbin/sleep.sh
[root@zlinux ~]# cat !$
cat /usr/local/sbin/sleep.sh
#! /bin/bash
sleep 1000
[root@zlinux ~]# nohup sh /usr/local/sbin/sleep.sh &
[1] 3703
直接加一个 ‘&’ 虽然丢到后台了,但是当退出该终端时很有可能这个脚本也会退出的,而在前面加上 nohup 就没有问题了,nohup 的作用就是不挂断地运行命令。






2、screen 工具的使用

简单来说,screen 是一个可以在多个进程之间多路复用一个物理终端的窗口管理器。screen 中有会话的概念,用户可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 SSH 连接窗口那样。
1、打开一个会话,直接输入 screen 命令然后回车,进入 screen 会话窗口。如果你没有 screen 命令,就安装下:
[root@zlinux ~]# screen
-bash: screen: 未找到命令
[root@zlinux ~]# yum install -y screen
然后输入 screen 就进入到 screen 会话窗口,在会话窗口查看已经打开的会话:
[root@zlinux ~]# screen -ls
There is a screen on:
3754.pts-0.zlinux (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 退出会话,不影响终端窗口上的任何操作。










@media only screen 和 @media screen 查询哪个是更好的选择

@media only screen 和 @media screen 查询哪个是更好的选择

如何解决@media only screen 和 @media screen 查询哪个是更好的选择

提前感谢您的帮助。我在搜索时正在编写一些媒体查询,我看到了它的两种语法 比如@media only screen and (max-width:767px)@media screen and (max-width:767px)。谁能说出这两者之间的区别?两个哪个更好用

解决方法

你绝对不再需要只使用。过去一直使用它来防止旧浏览器将规则应用于整个屏幕。基本上在过去,一些浏览器会忽略断点并将规则应用于整个屏幕,即使已说明。在你的情况下(max-width:767px)

gnu-screen – 如何在CentOS 5.7上获得TERM = screen-256color?

gnu-screen – 如何在CentOS 5.7上获得TERM = screen-256color?

CentOS 6.0能够将其TERM设置为screen-256color.但它在CentOS 5.7中不起作用.

如何让CentOS 5.7支持screen-256color?

如果你有一个方便的CentOS 6盒子,你应该能够获得screen-256color的terminfo文件的来源,然后在CentOS 5盒子上编译它.

看一眼:

http://tldp.org/HOWTO/Text-Terminal-HOWTO-16.html

我没试过,但是这样的话:

在CentOS 6上:infocmp屏幕-256color> /tmp/screen-256color.terminfo,然后将输出文件输入CentOS 5框.在CentOS 5框中,tic screen-256color.terminfo.从手册页,以root身份,将编译后的terminfo文件放入/usr/share / terminfo.

当然,阅读文档和手册页等.

今天关于Linux Screen 超简单用法linux中screen的分享就到这里,希望大家有所收获,若想了解更多关于0420 日常运维(四)rsync 工具、linux 系统日志、screen 工具、77.Linux 系统日志,screen 工具介绍、@media only screen 和 @media screen 查询哪个是更好的选择、gnu-screen – 如何在CentOS 5.7上获得TERM = screen-256color?等相关知识,可以在本站进行查询。

本文标签: