保守作業 Linux服务器常用操作

编程入门 行业动态 更新时间:2024-10-28 12:26:12

<a href=https://www.elefans.com/category/jswz/34/1729117.html style=保守作業 Linux服务器常用操作"/>

保守作業 Linux服务器常用操作

参考资料

  1. 自分がよく使うTeratermマクロによる自動ログインのやり方をまとめてみたよ
  2. Tera Term マクロでログインを自動化してみた

目录

  • 一. TeraTerm
    • 1.1 log保存
    • 1.2 新开窗口
    • 1.3 创建.ttl脚本文件自动登录
  • 二. Winscp
    • 2.1 设定传送时的文件编码规则
    • 2.2 确认传送模式
  • 三. Linux命令
    • 3.1 查看
      • 3.1.1 系统相关
      • 3.1.2 磁盘占用
      • 3.1.3 文件信息
    • 3.2 文本搜索
      • 3.2.1 head 和 tail 命令
      • 3.2.2 grep命令
      • 3.2.3 find命令
    • 3.3 新建
    • 3.4 压缩
    • 3.5 脚本
    • 3.6 删除
    • 3.7 复制
    • 3.8 格式化与编辑
      • 3.8.1 awk命令
      • 3.8.2 sed命令
        • 3.8.2.1 删除指定字符和指定字符后的所有内容
      • 3.8.3 cut命令
      • 3.8.4 split 命令
    • 3.9 排序
    • 3.10 服务器通讯
  • 四. 数据库

一. TeraTerm

⏹日本人写的一款远程终端连接软件

  • 官网: /
  • Github:

1.1 log保存

⏹点击File后,选择Log可以将当前的linux操作记录保存到指定位置的log中。
💥当我们操作商用Linux服务器时,记录自己的所有操作,避免出现问题时扯皮。

1.2 新开窗口

当打开一个窗口后,可以按Alt + d快捷键,可以在无需重新登录的情况下,重新开一个窗口。

1.3 创建.ttl脚本文件自动登录

待添加…


二. Winscp

⏹多用来在本机同远程linux服务器之间传输文件

  • 官网: .php

2.1 设定传送时的文件编码规则

⏹文件传输时,在默认情况下,是通过UTF-8来对文件名编码的,部分项目可能要求关闭此选项。

2.2 确认传送模式

⏹在操作线上部署好的服务器时,我们有时需要把配置文件从linux服务器中复制出来,然后在本地编辑完成之后,再放回linux中,此时需要确认下传送模式是否是以二进制进行传送。如果选择纯文本模式进行传送,有可能会引起乱码或者自动添加换行符的问题,从而引起线上事故。


三. Linux命令

3.1 查看

3.1.1 系统相关

⏹查看当前访问的主机和用户

# 查看当前访问的主机
uname -n
# 查看当前访问的用户
id -un# 使用 ; 来将多个命令结合起来
uname -n;id -un;

⏹查看当前系统的状态

# vmstat 表示查看系统的状态
# 1表示每一秒显示一次
vmstat 1 

⏹查看输入的ls -l命令的次数

# history用户列出所有输入的命令
# 通过管道符 | 进行传递后,通过 grep 命令检索 ls -l 后
# 再通过 wc -l 统计使用 ls -l 的次数
history | grep "ls -l" | wc -l
[2023-11-12 14:05:26.146] fengyehong@ubuntu:~$ history | grep "ls -l" | wc -l
[2023-11-12 14:05:28.804] 3

3.1.2 磁盘占用

⏹每秒钟监视当前磁盘的使用情况

# watch 用于周期性的执行特定的命令
# -n 1 表示每一秒刷新一次命令执行的结果
# df -h ./ 表示周期性执行的命令 
# -h表示以人类可读的格式(MB,Kb,GB等)显示磁盘空间大小
watch -n 1 df -h ./

⏹查看指定目录./jmw_work_space/的磁盘空间占用情况并排序

# --max-depth=1 表示文件件深度为1
# 因为可能有多层,此处只显示第一层
du --max-depth=1 ./jmw_work_space/ | sort -nr
[2023-11-12 13:54:39.769] du --max-depth=1 ./jmw_work_space/ | sort -nr
[2023-11-12 13:54:41.417] 13032	./jmw_work_space/
[2023-11-12 13:54:41.417] 16	./jmw_work_space/work
[2023-11-12 13:54:41.417] 12	./jmw_work_space/20231105

3.1.3 文件信息

⏹查看普通文件

# 查看文件名
ls
# 查看文件信息(包含大小,时间,所有权限等)
ls -l
# ll 是 ls -l 的缩写,二者本质上是同一个命令
ll
# 过滤出 .py 为后缀的文件的信息
ll | grep *.py

⏹查看压缩文件的相关信息

unzip -l Desktop.zip
[2023-11-12 14:27:00.586] unzip -l Desktop.zip
[2023-11-12 14:27:01.307] Archive:  Desktop.zip
[2023-11-12 14:27:01.307]   Length      Date    Time    Name
[2023-11-12 14:27:01.307] ---------  ---------- -----   ----
[2023-11-12 14:27:01.307]     21435  2023-11-07 22:12   teraterm1.log
[2023-11-12 14:27:01.308]     13763  2023-11-07 22:17   teraterm2.log
[2023-11-12 14:27:01.308] ---------                     -------
[2023-11-12 14:27:01.308]     35198                     2 files

⏹只查看压缩文件的名字

unzip -l Desktop.zip | awk '{print $4}'
[2023-11-12 14:27:01.310] fengyehong@ubuntu:~/jmw_work_space$ unzip -l Desktop.zip | awk '{print $4}'
[2023-11-12 14:27:24.244] 
[2023-11-12 14:27:24.244] Name
[2023-11-12 14:27:24.244] ----
[2023-11-12 14:27:24.244] teraterm1.log
[2023-11-12 14:27:24.244] teraterm2.log

3.2 文本搜索

3.2.1 head 和 tail 命令

head -行数 文件名

# 从头开始查看前5行的内容
head -5 CBC_SystemLog.2023-09-27.0.log

tail -行数 文件名

# 从尾开始查看倒数前5行的内容
tail -5 CBC_SystemLog.2023-09-27.0.log

3.2.2 grep命令

✅TEST-2023-07-11.txt

MPLE0130 Exception 123 ExecTime=MPLE0190 ExecTime=123
MPLE0150 TST 1234 ExecTime=454
MPLE0160 Exception 123 ExecTime=
MPLE0170 TST 1234 ExecTime=999

✅TEST-2023-09-11.txt

CCCE0130 Exception 123
MPLE0150 TST 1234
MPLE0160 Exception 123
CCCE0170 TST 1234

✅TEST-2023-10-11.txt

MPLE0130 Exception 123 ExecTime=MPLE0190 ExecTime=123
MPLE0150 TST 1234 ExecTime=454
MPLE0160 Exception 123 ExecTime=
MPLE0170 TST 1234 ExecTime=999

⏹下面两种写法相同,查询的都是MPLE0130CCCE0130

grep -a -e MPLE0130 -e CCCE0130 /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt
grep -aE 'MPLE0130|CCCE0130' /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt
[2023-11-12 18:27:49.427] grep -a -e MPLE0130 -e CCCE0130 /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt
[2023-11-12 18:27:51.967] MPLE0130 Exception 123 ExecTime=

⏹查询TEST-2023-*-11.txt文件夹中包含Exception 关键字的

grep -a -e Exception /home/fengyehong/jmw_work_space/TEST-2023-*-11.txt
[2023-11-12 18:27:51.970] fengyehong@ubuntu:~$ grep -a -e Exception /home/fengyehong/jmw_work_space/TEST-2023-*-11.txt
[2023-11-12 18:31:47.356] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:31:47.363] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0160 Exception 123 ExecTime=
[2023-11-12 18:31:47.371] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:CCCE0130 Exception 123
[2023-11-12 18:31:47.378] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:MPLE0160 Exception 123
[2023-11-12 18:31:47.387] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:31:47.394] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0160 Exception 123 ExecTime=

⏹运用正则表达式,{0[6-9],10}表示从06月到10月。{}表示或

grep -a -e Exception /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt
[2023-11-12 18:33:28.388] fengyehong@ubuntu:~$ grep -a -e Exception /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt
[2023-11-12 18:33:30.750] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:33:30.757] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0160 Exception 123 ExecTime=
[2023-11-12 18:33:30.765] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:CCCE0130 Exception 123
[2023-11-12 18:33:30.772] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:MPLE0160 Exception 123
[2023-11-12 18:33:30.780] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:33:30.787] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0160 Exception 123 ExecTime=

⏹路径和查询关键词中均包含正则表达式

# "^\S" 表示匹配非空白字符开头的部分
# "ExecTime=\S*" 匹配以 ExecTime= 开头后跟非空白字符的部分
grep -a -e "^\S" -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt
[2023-11-12 18:36:15.874] fengyehong@ubuntu:~$ grep -a -e "^\S" -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt
[2023-11-12 18:37:14.504] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:37:14.521] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:  MPLE0190 ExecTime=123
[2023-11-12 18:37:14.535] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0150 TST 1234 ExecTime=454
[2023-11-12 18:37:14.553] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0160 Exception 123 ExecTime=
[2023-11-12 18:37:14.570] /home/fengyehong/jmw_work_space/TEST-2023-07-11.txt:MPLE0170 TST 1234 ExecTime=999
[2023-11-12 18:37:14.587] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:CCCE0130 Exception 123
[2023-11-12 18:37:14.600] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:MPLE0150 TST 1234
[2023-11-12 18:37:14.615] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:MPLE0160 Exception 123
[2023-11-12 18:37:14.647] /home/fengyehong/jmw_work_space/TEST-2023-09-11.txt:CCCE0170 TST 1234
[2023-11-12 18:37:14.662] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0130 Exception 123 ExecTime=
[2023-11-12 18:37:14.679] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:  MPLE0190 ExecTime=123
[2023-11-12 18:37:14.694] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0150 TST 1234 ExecTime=454
[2023-11-12 18:37:14.712] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0160 Exception 123 ExecTime=
[2023-11-12 18:37:14.727] /home/fengyehong/jmw_work_space/TEST-2023-10-11.txt:MPLE0170 TST 1234 ExecTime=999

⏹混合查询

# 先查询ExecTime的值不为空白的数据, -h 可以只匹配结果不匹配路径
# 然后使用 grep -e "^\S" 过滤掉开头为空白的数据
# 然后使用 awk '{print $1}' 打印第一列
grep -a -h -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt | grep -e "^\S" | awk '{print $1}'
[2023-11-12 18:54:27.074] fengyehong@ubuntu:~$ grep -a -h -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt | grep -e "^\S" | awk '{print $1}'
[2023-11-12 18:55:41.989] MPLE0130
[2023-11-12 18:55:41.990] MPLE0150
[2023-11-12 18:55:41.990] MPLE0160
[2023-11-12 18:55:41.990] MPLE0170
[2023-11-12 18:55:41.990] MPLE0130
[2023-11-12 18:55:41.990] MPLE0150
[2023-11-12 18:55:41.990] MPLE0160
[2023-11-12 18:55:41.990] MPLE0170

⏹zgrep主要用来查询压缩包中的信息

# 统计 Desktop.zip 压缩包中 fengyehong 这个单词出现的次数
zgrep -a -e fengyehong /home/fengyehong/jmw_work_space/Desktop.zip | wc -l

3.2.3 find命令

待添加

3.3 新建

⏹新建文件夹

# 递归的创建文件夹, -p 可以创建多层嵌套的目录结构
mkdir -p test1/test2/test3

⏹将内容输入到指定的文件中

  • > 表示 新建
  • >> 表示 追加
# 将 这是一个测试内容 输入到 aaa.log 文件中,如果 aaa.log 不存在的话,会新建.
echo 这是一个测试内容 > aaa.log
# 将 bbbb 追加到 aaa.log 文件中
echo bbbb >> aaa.log
# 将查询到的文件名追加到 aaa.log 中
ls >> aaa.log

⏹创建一个空文件

touch cdc.txt

3.4 压缩

⏹zip压缩

# 将当前20231105目录下的所有文件压缩为 output.zip 文件夹
zip -r output.zip 20231105/*

⏹zip解压缩

# 将output.zip文件解压到当前目录的temp文件夹下,若temp文件夹不存在,会新建
unzip -d ./temp output.zip

3.5 脚本

# 先使用vi创建一个名为 exec.sh 的脚本文件
vi exec.sh
# 然后使用 vi 编辑该脚本文件,输入要执行的脚本
ls -l
unzip -d ./temp output.zip# 退出vi编辑器之后,使用 sh 命令执行脚本,并将结果输出到 result.log 文件中
sh exec.sh > result.log

3.6 删除

# 其中i表示每次删除前询问, r则表示递归删除.
rm -ir 文件夹或文件名 
# 没有添加 -r ,只能删除文件不能删除文件夹
rm -i 文件名

3.7 复制

# 将exec.sh文件复制到 20231105 文件夹中 
# p表示保留原文件的相关属性,例如时间和作者等
cp -p exec.sh 20231105/# 将当前目录下的work文件夹复制到当前目录下的20231105文件夹中
# r表示递归复制
cp -p -r ./work/ ./20231105/

3.8 格式化与编辑

3.8.1 awk命令

待添加

3.8.2 sed命令

3.8.2.1 删除指定字符和指定字符后的所有内容
grep -a -h -e "^\S" -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt

⏹上述grep命令执行结果为

MPLE0130 Exception 123 ExecTime=MPLE0190 ExecTime=123
MPLE0150 TST 1234 ExecTime=454
MPLE0160 Exception 123 ExecTime=
MPLE0170 TST 1234 ExecTime=999
CCCE0130 Exception 123
MPLE0150 TST 1234
MPLE0160 Exception 123
CCCE0170 TST 1234
MPLE0130 Exception 123 ExecTime=MPLE0190 ExecTime=123
MPLE0150 TST 1234 ExecTime=454
MPLE0160 Exception 123 ExecTime=
MPLE0170 TST 1234 ExecTime=999

⏹使用管道符|继续添加sed命令

grep -a -h -e "^\S" -e "ExecTime=\S*" /home/fengyehong/jmw_work_space/TEST-2023-{0[6-9],10}-11.txt 
# 添加的sed命令,作用是删除每行ExecTime=之后的所有数据
| sed -e 's/ExecTime=//g'# 解释
# s/old/new/ 命令将字符串 old 替换为字符串 new
# 's/ExecTime=//g' 中的g表示正则表达式

⏹执行结果如下,可以看到ExecTime=后的内容全部被删除

MPLE0130 Exception 123MPLE0190 123
MPLE0150 TST 1234 454
MPLE0160 Exception 123
MPLE0170 TST 1234 999
CCCE0130 Exception 123
MPLE0150 TST 1234
MPLE0160 Exception 123
CCCE0170 TST 1234
MPLE0130 Exception 123MPLE0190 123
MPLE0150 TST 1234 454
MPLE0160 Exception 123
MPLE0170 TST 1234 999

3.8.3 cut命令

# 使用echo声明
# -d"," 表示指定分隔符为 , 
# -f1 表示提取第一个字段
# 因此执行结果为 John
echo John,Doe,ID | cut -d"," -f1

3.8.4 split 命令

👉number.txt

111111111 1111111111111
222222222 2222222222222
333333333 3333333333333
444444444 4444444444444
555555555 5555555555555
666666666 6666666666666
777777777 7777777777777
888888888 8888888888888
999999999 9999999999999
# ... 以下省略... 

⏹用来切割文件,将一个大文件切分为指定的份数

# cat用来打开指定的文本文件
# split 用于将文件分隔为多个较小的文件
# -l 3 表示将文件按照行分割, 每个分割出来的文件最多包含3行
# -d 表示使用数字作为分割后的文件名后缀, 而不是默认的字母后缀
# jmw_num_ 则表示文件命名的规则
cat number.txt | split -l 3 -d - jmw_num_

⏹上述命令执行之后

[2023-11-12 20:28:19.592] fengyehong@ubuntu:~/jmw_work_space/temp$ ll
[2023-11-12 20:28:22.127] total 76
[2023-11-12 20:28:22.127] drwxrwxr-x 2 fengyehong fengyehong 4096 Nov 12 03:28 ./
[2023-11-12 20:28:22.127] drwxrwxr-x 5 fengyehong fengyehong 4096 Nov 12 03:22 ../
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_00
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_01
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_02
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_03
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_04
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_05
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_06
[2023-11-12 20:28:22.127] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_07
[2023-11-12 20:28:22.128] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_08
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_09
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_10
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_11
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_12
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_13
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong   75 Nov 12 03:28 jmw_num_14
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong    2 Nov 12 03:28 jmw_num_15
[2023-11-12 20:28:22.144] -rw-rw-r-- 1 fengyehong fengyehong 1127 Nov 12 03:17 number.txt

3.9 排序

sort -nr

3.10 服务器通讯

scp命令用于多个服务器之间的文件传送
ssh命令


四. 数据库

set linesize 1000 在黑窗口操作sql时调整窗口大小

更多推荐

保守作業 Linux服务器常用操作

本文发布于:2023-11-15 04:50:36,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1593965.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:保守   常用   操作   服务器   Linux

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!