系统服务(控制、远程文件传输、压缩、日志)

一系统服务的控制

1.systemd

系统初始化程序,系统开始的第一个进程,pid1

 

2.systemctl 命令

systemctl list-units ##列出当前系统服务的状态

systemctl list-unit-files ##列出服务的开机状态

systemctl status sshd ##查看指定服务的状态

systemctl stop sshd ##关闭指定服务

systemctl start sshd ##开启指定服务

systemctl restart sshd ##从新启动服务

systemctl enable sshd ##设定指定服务开机开启

systemctl disable sshd ##设定指定服务开机关闭

systemctl reload sshd ##使指定服务从新加载配置

systemctl list-dependencies sshd ##查看指定服务的倚赖关系

systemctl mask sshd ##冻结指定服务

systemctl unmask sshd ##启用服务

systemctl set-default multi-user.target ##开机不开启图形

systemctl set-default graphical.target ##开机启动图形

setterm ##文本界面设定color

 

实验

systemctl list-units                           ##列出当前系统服务的状态

 

 

systemctl  list-unit-files                      列出服务的开机状态

 

systemctl status [sshd]              ##查看指服务(sshd)的状态

 

 

systemctl  stop|start|restart sshd            ##关闭|开启|重新开启某个指定服务(sshd

 

 

 

systemctl enable|dasable  sshd       ##设定指定服务开机启动|开机关闭sshd

 




 

systemctl reload sshd                   ##设定sshd服务重新加载配置

 

systemctl mask|unmask sshd                    ##冻结sshd服务|解冻sshd服务

 

 

syetemctl list-dependencies sshd         ##查看sshd服务的依懒关系

 

systemctl set-default multi-user.target   ##开机不开启图形界面,reboot开启重启进入字符界面

 


 

systemctl set-default graphical.target      ##开机启动图形界面

 

 

setterm                        ##文本界面设置colo(u)r,查看帮助获取setterm的用法

 

 

3.服务状态

查看命令:systemctl status 服务名称

 

loaded       ##系统服务已经初始化完成,加载过配置

activerunning       ##正有一个或多个程序正在系统中执行,

atciveexited ##仅执行一次就正常結束的服务,

     # 目前并没有任何程序在系統中执行

 

atcivewaiting ##正在执行当中,

    # 不过还再等待其他的事件才能继续处理

 

inactive    ##服务关闭

enbaled ##服务开机启动

disabled    ##服务开机不自启

static ##服务开机启动项不可被管理

failed ##系统配置错误1.文件的上传与下载

比如:

 

 

二系统文件的传输

1.传输

 scp        file         username@ip/dir        ##上传文件file

 scp         username@ip/dir/file    /dir         ##下载文件/dir/file

实验:把server/mnt下的文件file传到desktop的桌面

 

 

server桌面上的文件file传到desktop的桌面

 

 

 

2.rsync 

 rsync  [参数]   file     username@ip/dir

          -r                 ##同步目录

          -l                 ##不忽略链接文件

          -p                ##不忽略文件权限

          -D               ##不忽略设备文件

         -t                 ##不忽略时间戳

          -g               ##不忽略所有组

          -o               ##不忽略所有人

 

实验:实验前在desktop主机上清空mnt下的文件,新建目录test,切换目录test,新建文件file19ln -s file0 westos 制作file0的链接文件,复制/dev/pts/*的文件到test中,ls -l查看test中文件内容。返回上一级目录

  

 

desktop/mnt下的目录test上传到server主机的/mnt下 ,在mnt工作目录台上执行命令:rsync -r test root@172.25.254.21/mnt,发现连接文件及设备文件被跳过没有上传成功

 

 

删除servermnt下的所有文件,再次重新执行命令:rsync -rl test root@172.25.254.21/mnt

发现链接文件上传成功,但设备文件依旧没上传

 

删除server主机mnt下的所有文件,重新执行命令:rsync -lrD test root@172.25.254.21/mnt,设备文件及连接都上传成功

 

 

Server主机下,需要下载desktop主机上mnt下的test中所有文件并保持时间戳不变。执行命令:rsync -lrDt root2172.25.254.66/mnt/test

 

 

Desktop主机上,需要上传mnt下的test中所有文件到Server主机上,并保持时间戳不变,所有人所有组不变,新改权限777不变,执行命令:rsync -lrDt ogp test root2172.25.254.21/mnt

 

 

三文件归管理

1.文件的归档--打包

  文件的归档就是把多个文件变成一个归档文件,就是一个打包的过程

tar   参数     新名 原名

         c              ##创建

        f               ##指定归档文件名称

        t               ##显示归当中的内容

        r               ##向归档中添加文件   

        --get           ##取出归档中的单个文件

        --delete        ##删除归档中单铬文件         

        x              ##取出归档文件中所有内容

        -C             ##指定解档目录

        -z             ##归档的基础上进行gz格式压缩

        -j             ##归档的基础上进行bz2格式压缩

        -J             ##归档的基础上进行xz格式压缩

实验:  

/etc打包归档到桌面,并命名为etc.tar


     

  tar ft etc.tar    ##显示归当etc.tar中的内容(截取部分)

 

新建的文件file将其添加到etc.tar中,并显示etc.tar中的file

 

  

将归档etc.tar中的file取出来

 

 

file添加到etc.tar中,并删除file

 

 

file添加到etc.tar中,并取出etc.tar中所有内容

 

 

 

 

解档etc.tar mnt


 

 

/etc目录进行gz格式压缩;命令:tar -zcf etc.tar.gz /etc

 

 

 

/etc目录进行bz2格式压缩;执行命令:tar -cfj etc.tar.bz2 /etc

 

etc进行xz格式压缩;命令:tar -cfJ etc.tar.xz /etc

 

 

 

 

2.压缩 

 z j J前边的-符号可有可无

(1)gz

 

gzip etc.tar                       ##把归档文件etc.tar压缩成gz格式的压缩包

gunzip  etc.tar.gz               ##gz格式压缩包etc.tar.gz解压为etc.tar归档文件包

--------

tar zcf etc.tar.gz  /etc              ##先把etc归档etc.tar在进行gz格式压缩

tar zxf etc.tar.gz                   ##gz格式压缩包etc.tar.gz进行解压为etc目录

 

实验:

gzip etc.tar  执行命令前要保证当前工作目录存在etc.tar归档包

 

gunzip etc.tar.gz                解压etc.tar.gz压缩包


归档的基础上进行

tar zcf etc.tar.gz /etc    先把etc归档etc.tar在进行gz格式压缩

 

 

tar zxf etc.tar.gz 解压并解档gz格式压缩包

 

 

 

(2)bz2

bzip2 etc.tar         ##etc.tar压缩成bz2格式的压缩包etc.tar.bz2

bunzip2 etc.tar.bz2     ##解压bz2格式压缩包为归档文件etc.tar

tar jcf etc.tar.bz2 /etc   ##把文件归档为tar并压缩成bz2

tar jxf etc.tar.bz2         ##解压并解档bz2格式压缩包

实验:

 

 

(3)xz

xz etc.tar         ##压缩成xz格式

unxz  etc.tar.xz          ##解压xz格式压缩包

tar Jcf etc.tar.xz /etc     ##把文件归档为tar并压缩成zx

tar Jxf etc.tar.xz         ##解压并解档xz格式压缩包

实验:

 

 

(4)zip

 zip -r etc.tar.zip etc.tar           ##把归档文件etc.tar压缩成zip格式

 unzip etc.tar.zip                 ##解压zip格式压缩包

实验:

 

 

四系统日志

进程和操作系统内核需要能够为发生的事件记录日志,这些日志可用于系统审核和问题的故障排除,一般这些日志永久保存在/var/log目录中,系统文件记录信息有以下。

1.系统日志的默认分类

/var/log/messages                   ##系统服务日志,包括服务的信息,报错等

/var/log/secure                      ##系统认证信息日志

/var/log/maillog                     ##系统邮件服务信息日志

/var/log/cron                       ##系统定时任务信息日志

/var/log/boot.log                    ##姿态启动信息日志

2.日志管理服务

1rsyslog  负责采集日志和分类存放日志

2)主配置文件/etc/rsyslog.conf

3)日志设备(可以理解为日志类型)

auth                   ##pam产生的日志

authpriv             ##ssh,ftp等登录信息的验证信息

cron                 ##时间任务相关

kern                 ##内核

lpr                  ##打印

mail                  ##邮件

mark(syslog)–rsyslog     ##服务内部的信息,时间标识

news             ##新闻组

user                 ##用户程序产生的相关信息

uucp             ##unix to unix copy, unix主机之间相关的通讯

local 1~7            ##自定义的日志设备

 

4)日志级别

debug          ##有调式信息的,日志信息最多

info               ##一般信息的日志,最常用

notice             ##最具有重要性的普通条件的信息

warning        ##警告级别

err                ##错误级别,阻止某个功能或者模块不能正常工作的信息

crit               ##严重级别,阻止整个系统或者整个软件不能正常工作的信息

alert              ##需要立刻修改的信息

Emerge         ##内核崩溃等严重信息

none           ##什么都不记录

 

##注意:从上到下,级别从低到高,记录的信息越来越少

##详细的可以查看手册: man 3 syslog

3.日志同步

第一步:systemctl stop firewalld.service    ##关闭两台主机的防火墙

 

第二步进入配置文件:/etc/rsyslog.conf,编辑发送方就是接收日志的主机ip

 


 第三步日志接收主机进入/etc/rsyslog.conf进行文件配置

 

 

 

 

第四步测试

 

 

 

4.日志的采集格式

配置文件:/etc/rsyslog.conf

格式:$template action, “%timegenerated% %FROMHOST-IP% %syslogtag% %msg%\n”

 

其中:%timegenerated%   ##显示日志时间

      %FROMHOST-IP%  ##显示主机ip

      %syslogtag%       ##日志记录目标

      %msg%           ##日志内容

       \n                ##换行

实验:

 

 

 

5.日志的同步管理

第一步:systemctl stop firewalld ##关闭两台主机的火墙

 

第二步:配置日志发送方

*.*             @172.25.254.51 ##通过udp协议把日志发送到51主机

说明:1配置格式中“*.*”第一个星号表示日志分类,来源,比如关于内核knel,邮件mail的,第二个星号表示优先级别的,比如emergealerterro

说明:2 @ip表示使用udp传输协议,特点不是很可靠但效率高,@@ip,表示使用TCP协议传输,安全可靠

第三步配置日志接受方

15 $ModLoad imudp ##日志接收插件

16 $UDPServerRun 514 ##日志接收插件使用端口

 

 

**netstat -anulpe | grep rsyslog

udp        0      0 0.0.0.0:514             0.0.0.0:*                           0          122073     32654/rsyslogd      

udp6       0      0 :::514                  :::*                                0          122074     32654/rsyslogd      

-a ##all

-n ##不做解析

-t ##tcp

-u ##udp

-p ##进程名称

-e ##扩展信息

第四步测试

> /var/log/messages ##两边都作

logger test message ##日志发送方

 

tail -f /var/log/message ##日志接收方

 

实验:

localhost主机的日志村到student主机的的/var/log/messages

*关闭两台主机的防火墙

systemctl stop firewalld.service

 

 

**配置发送方主机/etc/rsyslog.conf文件

vim  /etc/rsyslog.conf


两台主机

完成配置后wq退出保存记得重启rsyslog.service日志服务:systemctl restart rsyslog.service

***配置接收方rsyslog配置文件:vim /etc/rsyslog.conf

 


 

同样配置完成后wq退出保存,重启rsyslog日志服务:systemctl restart rsyslog.service

****进行实验前可以在虚拟机中选择清空两台主机日志:> /var/log/messages

在接收方主机使用日志实时监控命令:tail -f /var/log/messgaes

如下图,右边localhost主机通过logger进行实验测试,左边student主机会显示

 

 

 

6.时间的同步

主配置文件:/etc/chrony.conf

@服务端

vim  /etv/chrony.conf

文件内容:

21 # Allow NTP client access from local network.

22 allow 172.25.254.51/24 ##允许谁去同步我的时间

27 # Serve time even if not synchronized to any NTP server.

28 local stratum 10 ##不去同步任何人的时间,时间同步服务器级别

 

systemctl restart chronyd.service

systemctl stop firewalld.service

 

 

客户端

配置文件vim /etc/chrony.conf

         vim /etc/ssh/sshd_conf

文件内容:

  3  server 0.rhel.pool.ntp.org iburst

  4  server 1.rhel.pool.ntp.org iburst====> server ntpserverip iburst

  5  server 2.rhel.pool.ntp.org iburst====>

  6  server 3.rhel.pool.ntp.org iburst

systemctl restart chronyd.service

systemctl restart ssh.conf

 

 

测试:

chronyc sources -v

 

实验:(实验前关闭两台主机的防火墙)

服务端配置/etc/chrony.conf文件

2229

22行表示允许172.25.254.51这台主机同步我的时间

29行表示不去同步任何人的时间,除了我这台主机

 

 

重启该机的chrony服务,

 

 

@客户端配置

关闭防火墙,同样vim /etc/chrony.conf

3 ,4 ,5,6,7行内容进行修改配置

修改后内容

 

 

重启chrony.conf服务,配置/etc/ssh/ssh_config ,完成后systemctl restart  sshd.service

 

 

Wq退出保存重启chrony服务;systenctl chronyd.service进行测试:chronyc sources -v

 



7.日志分析工具journal

systemd-journald 服务

journalctl        ##直接执行,浏览系统日志

-n 3                 ##显示最新3

-p err                         ##显示报错

-f                                  ##监控日志

--since --until           ## --since "[YYYY-MM-DD] [hh:mm:ss]"从什么时间到什么时间的日志

-o verbose             ##显示日志能够使用的详细进程参数

  _UID=     // 进程 uid

                  _PID= // 进程 id

                  _GID= // 进程 gid

                  _HOSTNAME= // 进程所在主机

                 _SYSTEMD_UNIT= // 服务名称

                 _COMM= // 命令名称

查看systemd-journald服务状态

 

journalctl 浏览系统日志

 

journalcl -n 3

浏览最新三条

 

journalctl -p err 显示报错

 

journalctl  -f

监控日志

 

journal --since --until  查看特定时间段的日志信息since/untilhh-mm-ss

查看2018110094500秒开始的日志

 

 

查看今天(110号)截至9点点48分之前的日志



 Journalctl -o verbose显示日志能够显示的详细参数

 

 

journalctl  _PIG=2612

 

**systemd-journald管理

默认情况下,systemd 日志保存在 /run/log/journal , 这意味着系统重启时会被清除,那如果将日志保存在/var/log/journal目录,这样做的优点是启动后就可以利用历史数据,形成永久日志

实现步骤 :

mkdir /var/log/journal                              ##新建/var/log下的目录journal                      

chown root.systemd-journal /var/log/journal/         ##该目录所有人为所有组

chmod 2755 /var/log/journal/                       ##设定权限2755

killall -1 systemd-journald                      ##重新加载systemd-journald服务配置

 

实验:

 

 

 

reboot  重启后会出现一个文件  user-42.journal

 

journalctl浏览日志,reboot前的日志写进去了

 

 

8.timedatectl命令

timedatectl status ##显示当前时间信息

set-time    ##设定当前时间

set-timezone    ##设定当前时区

set-local-rtc 0|1   ##设定是否使用utc时间

实验:timedatectl

 

 

timedatectl status显示当前时间

Local time当地时间;universal time世界时;rtc time:实时时钟

 

 

timedatectl  set-time “yyyy-mm-dd hh:mm:ss”

 

 

timedatectl list-timezones 显示时区

 

 

时区设定

 

timedatectl set-timezone Asia/Shanghai

 

 

 

timedatectl set-local-rtc 0/1  配置文件/etc/sdjtime  ##设置是否使用utc时间也就是东经0度(东一区)时间 ,0为否,1为是

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值