一.Linux中系统中的文件传输
实验环境:需要两台可以通信的虚拟机,前面设置的10 和 20 主机即可
1.scp命令
scp 本地文件 远程主机用户@远程主机IP:远程主机目录的绝对路径(上传)
scp 远程主机用户@远程主机IP:远程主机目录的绝对路径 本地文件(下载)
实验操作如下
(1)在10主机上建立文件和目录
touch westos
mkdir westosdir
(2)测试
a)在10主机把本地文件复制到远程主机上
scp westos [email protected]:/root/Desktop
在10主机把本地目录复制到远程主机上
scp -r westosdir [email protected]:/root/Desktop 显示上传进度
scp -rq westosdir [email protected]:/root/Desktop 不显示上传进度
b)在10主机上将远程文件复制到本机
scp -r [email protected]:/root/Desktop /file{1..5} /root/Desktop
2.rsync 命令
a)rsync和scp命令的对比
实验素材建立: 在10主机上建立3个文件
dd if=/dev/zero of=/root/Desktop/westosfile1 bs=1M count=10
#dd 表示截取 if=inputfile of=outputfile bs=blocksize count=块的个数 该命令表示建立一个10M的文件
dd if=/dev/zero of=/root/Desktop/westosfile1 bs=1M count=20
dd if=/dev/zero of=/root/Desktop/westosfile1 bs=1M count=30
b) 在主机之间设定远程免密连接 设置在前面的实验中已完成
c)创建测试脚本
vim /mnt/scp.sh 检测scp传输时间
在vim中编辑 :
time scp -qr /root/Desktop/westosfile1 [email protected]:/root/Desktop
time scp -qr /root/Desktop/westosfile2 [email protected]:/root/Desktop
time scp -qr /root/Desktop/westosfile3 [email protected]:/root/Desktop
vim /mnt/rsync.sh 检测rsync传输时间
在vim中编辑 :
time rsync -qraC /root/Desktop/westosfile1 [email protected]:/root/Desktop
time rsync -qraC /root/Desktop/westosfile2 [email protected]:/root/Desktop
time rsync --qraC /root/Desktop/westosfile3 [email protected]:/root/Desktop
d)执行脚本
sh /mnt/scp.sh 和 sh /mnt/rsync.sh
三次系统执行时间可以看出SCP三次执行时间几乎一致。rsync后两次时间远远小于第一次。
实验结果如下:
3.rsync 命令的用法
rsync 本地文件 远程主机用户@远程主机IP:远程主机目录的绝对路径(上传)
rsync 远程主机用户@远程主机IP:远程主机目录的绝对路径 本地文件(下载)
带参数的 rsync 用法
rsync -r [email protected]:/root/Desktop /mnt 同步目录本身和目录中的文件
rsync -r [email protected]:/root/Desktop/ /mnt 只同步目录中的文件
rsync -rl [email protected]:/root/Desktop/ /mnt -l 同步连接
rsync -rlp [email protected]:/root/Desktop/ /mnt -p同步权限
rsync -rlpog [email protected]:/root/Desktop/ /mnt 同步用户组
rsync -rlpogt [email protected]:/root/Desktop/ /mnt 同步时间
rsync -rD [email protected]:/dev/pts /mnt
实验如下:
首先需要建立文件和对用户上的权限进行设置
4.文件的归档
tar命令
tar c 创建 v 显示过程
f 指定文件名称 --get 解档指定文件
x 解档 --delete 删除指定文件
t 查看 -C 指定解档路径
r 向归档文件中添加文件
5.文件压缩
zip
zip -r mnt.tar.zip mnt.tar zip格式压缩
unzip mnt.tar.zip zip格式解压缩
gzip
gzip mnt.tar gzip 格式压缩
gunzip mnt.tar.gz gzip 格式解压缩
bzip2
bzip2 mnt.tar bzip2格式压缩
bunzip2 mnt.tar.bz2 bzip2格式解压缩
xz
xz mnt.tar xz格式压缩
unxz mnt.tar ,xz xz格式解压缩
6.tar归档+压缩
gzip
tar zcf mnt.tar.gz /mnt
tar zxf mnt.tar.gz
bzip
bzip
tar jcf mnt.tar.bz2 /mnt
tar jxf mnt.tar.bz2
xz
tar Jcf mnt.tar.xz /mnt
tar Jxf mnt.tar.xz
实验如下
二.Linux系统中的日志管理
实验环境:两台主机 实验前需要将火墙关闭 systenctl stop fierwalld
1.journald
服务名称:systemd-journald.service
journalctl 路径:/run/log
journalctl 命令用法:
-n 3 查看日志的最新三条
--since “2020-05-26 9:00” 显示9点以后的日志
--until “2020-05-26 9:00” 显示日志到9点
-o 设定日志的显示方式 -o short 经典模式 -o verbose 显示日志的全部字节 -o export 适合传出和备份的二进 制格式 -o json js格式显示输出
-P 显示日志级别 #0 emerg 系统的严重问题日志
#1 alert 系统立即要改的信息
#2 crit 严重级别会导致系统软件不能正常运行
#3 err 程序报错
#4 waring 程序警告
#5 notice 重要信息的普通指信息
#6 info 普通信息
#7 debug 程序拍错信息
-F PRIORITY 查看可控日志级别 --disk -usage 查看日志大小
-u 查看指定服务 --vacuum -size=1G 设定日志存放大小
--vacuum -time =1w 设定日志存放的时间
-f 监控日志
注意系统重启后将看不到开机前的日志。
2.永久保存日志信息
系统中默认日志在:/run/log/journal
默认方式在系统重启后日志会被清理,要永久保存日志需进行下面设定
mkdir /var/log/journal
chgrp systemd-journal /var/log/journal
chmod g+s /var/log/journal
设置完成后 systemctl restart systemd-journal.service
当重启日志服务后 日志内容将存放在/var/log/journal
3.rsyslog
服务名称:rsyslog.service
日志存放:
/var/log/messages 系统服务日志
/var/log/secure 系统认证信息日志
/var/log/maillog 系统邮件日志信息
/var/log/cron 系统定时任务信息
/var/log/boot.log 系统启动日志信息
配置文件:/etc/rsyslog.conf
实验1:自定义采集路径
vim /etc/rsyslog.conf
日志类别 .日志级别 日志存放路径
* . * /var/log/westos 把系统中所有级别的日志信息存放在westos
* . *;authpriv.none /var/log/westos 把系统中所有级别的日志信息存放在westos,但authpriv不存放
日志类型 日志级别
auth 用户认证 emerg 系统的严重问题日志
authpriv 服务认证 alert 系统立即要改的信息
cron 时间任务 err 程序报错
kern 内核类型 waring 程序警告
mail 邮件 notice 重要信息的普通指信息
news 系统更新信息 info 普通信息
user 用户 debug 程序拍错信息 none 不采集信息
实验过程按上述操作
实验2:如何更改日志采集格式
(1)定义日志采集格式
$template WESTOS "%FROMHOST -IP% %timegenerated% %FROMHOST -IP% %syslogtag% %msg%\n"
WESTOS:格式名称
%FROMHOST -IP%:日志来源主机IP
%timegenerated%: 日志生成时间
%syslogtag% :日志生成服务
%msg% :日志内容
\n:换行
(2)设定日志采集格式应用
编辑日志采集格式
* . *;authpriv.none /var/log/westos ;WESTOS
module (load="builtin:omfile" Template="WESTOS_FORMAT") 默然采用WESTOS_FORMAT格式
(3)日志远程同步
node1:20主机作为存放日志接受端,所有人日志都存放在此主机
Linux:10主机发送日志到20主机
a) 在node1中设定接受所有人的日志
systemctl stop fierwalld 关闭防火墙
进入编辑 vim /etc/rsyslog.conf
19 module (load=imudp) 打开日志接受插件
20 input(type="imudp" port="514") 指定插件使用接口
systemctl restart rsyslog.service
查询端口: ss -antlupe | grep rsyslog
b)在10主机中设定发送日志到20中
进入编辑 vim /etc/rsyslog.conf
写入@172.25.254.20 表示将本机日志用UDP的传输方式发送到20主机中
@ 表示用udp传输日志
@@表示用tcp传输日志
测试:
在20主机中清理掉原有的信息日志 > /var/log/messages
然后在 linux z10主机中 logger westos test message
3.timedatectl 修改时间时区的命令
timedatectl set-time "2020-05-27 10:06" 设定系统时间
timedatectl list-timezone 显示系统的所有时区
timedatectl set-timezone "Aisa/Shanghai" 设定系统时区
timedatectl set-local-rtc 0|1 设定系统时间的计算方式 0表示使用utc时间计算方式
4.时间同步服务
服务名称:chronyd.service
配置文件:/etc/chrony.conf
实验:10主机作为时间源同步20的时间
在10主机上,
vim /etc/chrony.conf
26 allow 172.25.254.0/24 允许172.25.254.0网段主机同步时间
29 local stratum 10 开启时间同步服务器功能并设定级别为10
systemctl restart chronyd.service
在20主机中
vim /etc/chrony.conf
pool 172.25.254.10 iburst
然后在node1中用chronyc source -v