打包压缩与搜索命令
在网络上,人们越来越倾向于传输压缩格式的文件,原因是压缩文件体积小,在网速相
同的情况下,传输时间短。
tar
tar 命令用于对文件进行打包压缩或解压,格式为“tar [选项] [文件]”。
在 Linux 系统中,常见的文件格式比较多,其中主要使用的是.tar 或.tar.gz 或.tar.bz2 格式,我
们不用担心格式太多而记不住,其实这些格式大部分都是由 tar 命令来生成的。
-c 创建压缩文件
-x 解开压缩文件
-t 查看压缩包内有哪些文件
-z 用 Gzip 压缩或解压
-j 用 bzip2 压缩或解压
-v 显示压缩或解压的过程
-f 目标文件名
-p 保留原始的权限与属性
-P 使用绝对路径来压缩
-C 指定解压到的目录
一般使用“tar -zcvf 压缩包名称.tar.gz 要打包的目录”命令把指定的文件进行打包压缩;
相应的解压命令为“tar -zxvf 压缩包名称.tar.gz”。
先使用 tar 命令把/etc 目录通过 gzip 格式进行打包压缩,并把文件命名为 etc.tar.gz
tar -czvf etc.tar.gz /etc
接下来将打包后的压缩包文件指定解压到/root/etc 目录中
tar xzvf etc.tar.gz -C /root/etc
grep
grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。
两个最最常用的参数:-n 参数用来显示搜索到信息的行号;-v 反向选择 — 仅列出没有“关键词”的行。
过滤注释行
> cat 1.txt | grep -v "^#"
同时过滤空白行与注释行
> cat 1.txt | grep -v "^$" | grep -v "^#"
find
find 命令用于按照指定条件来查找文件,格式为“find [查找路径] 寻找条件 操作”。
如果要想获取到该目录中所有以 host 开头的文件列表
find /etc -name "host*" -print
服务器监控
当我们监控*nix服务器时,通常会查看以下之内容:
CPU使用率:检查CPU使用情况,查看正在处理器使用的百分比。
内存使用情况:总共用了多少内存以及单个进程和用户进和。
磁盘使用情况:使用了多少磁盘空间。
正常运行时间:对于虚拟服务器,正常运行时间是服务器运行的时间。监控主要是为了查看服务器是否经历了意外重启。
网络活动:监控网络流量需要哪些精确度,取决于服务器托管的内容。在通常情况下,即使运行静态站点但未主动访问的服务器也会看到运行在其上的其他进程的I/O,服务器网络不应该降到0。
Swap使用:Swap交换空间是保留的磁盘空间,是在可用内存不足时补充内存使用量。当查看“交换空间使用情况”时,我们通常会看交换空间使用情况是否显著上升。如果真是如此,需要查内存和其他资源,看看自己是否可以挖掘到原因。
经常在管理服务器时,除了使用的任何监视警报工具之外,更多时候要使用命令行。
top - 一个很方便的工具,允许我们查看正常运行时间,内存使用情况,CPU使用情况以及交换空间等内容。我们还可以查看其它信息:包括其它正在运行的进程,用于运行该进程的命令等。通过按q键退出top命令行。
tcpdump - 这是一个监控网络数据包的强大工具。例如,我们可以使用它来侦听服务器实例上的所有网络流量,或限制为仅侦听来自特定源和/或目标端口的流量。可以使用ctrl + C退出。
netstat - 允许我们查看服务器上的网络连接的内容和方式,包括将表信息路由为TCP/UDP连接及其进程。后者的常见组合是-tlnpu。如果你需要,还可以使用-c运行命令以进行连续监控。
uptime - 查看服务器运行时间的简便方法。如果你希望查看持续时间的正常运行时间而不是服务器启动的时间戳,请使用 -pretty参数。
/proc/meminfo - 可以使用自己喜欢的编辑器来查看此文件,能够深入了解当前的活动/可用内存的使用情况。
free - 要查看没有进程信息的空闲与已用内存,请使用free命令。默认情况下,这些值以字节为单位,如果你希望以兆字节或千兆字节的形式查看输出,建议附加-h 参数。
df - 允许管理员查看系统上安装的所有卷的总磁盘使用情况。默认为1K块大小,建议附加-h以查看兆字节和/或千兆字节的输出结果 df -h。
du - 以指定目录中的所有对象(文件,目录)递归打印文件系统对象的磁盘使用情况。要注意:如果没有指定目录,则使用root根目录(/),结果很快超过你的终端!如果只想查看目录中项目使用了多少磁盘,请使用-sh。
磁盘空间已满
有时会出现这样的情况,磁盘空间显示已经被占满,但是在查看磁盘的具体文件占用情况时,发现磁盘仍然有很大的空余空间。
执行df命令查看磁盘使用情况,发现磁盘已经满了
$ df -Th
执行 du 命令查看各个目录的磁盘占用情况,把各个目录文件的大小相加,发现并没有占满磁盘
$ du -h --max-depth=1
执行lsof 命令显示打开已删除的文件。将有问题的进程重启(或,清空),磁盘空间就会得到释放。
# lsof | grep delete
端口被占用
要列出所有正在侦听的TCP或UDP端口,包括使用端口的服务和套接字状态,请使用以下命令:
sudo netstat -tunlp
此命令中使用的选项具有以下含义:
- -t-显示TCP端口。
- -u -显示UDP端口。
- -n -显示数字地址而不是解析主机。
- -l -仅显示监听端口。
- -p -显示侦听器进程的PID和名称。
如果要过滤结果,请使用 grep命令。例如,要查找在TCP端口22上侦听的进程,你可以输入:
sudo netstat -tnlp | grep :22
ss是新的netstat。它缺少netstat的某些功能,但是公开了更多的TCP状态,并且速度稍快。命令选项基本相同,因此从netstat到ss的转换并不困难。
要使用ss获取所有监听端口的列表,请输入:
sudo ss -tunlp
输出与netstat报告的输出几乎相同
要获取具有lsof的所有侦听TCP端口的列表,请输入:
sudo lsof -nP -iTCP -sTCP:LISTEN
使用的选项如下:
- -n-不要将端口号转换为端口名称。
- -p -不解析主机名,显示数字地址。
- -iTCP -sTCP:LISTEN -仅显示TCP状态为LISTEN的网络文件。
服务器速度变慢
1. 服务器的负载量过大
当你拿到一个服务器的时候,要了解并知道你的服务器的性能以及能承载的最大负荷,当在使用时,用户所进行的进程,超过了服务器本身的处理能力,和存储空间,这就会造成服务器反应越来越迟缓。运行的进程超出了服务器的承载范围时,就需要调整和校正使用的负载,以保证服务器能够在其能力范围内运行。
2. 本地网络原因
当我们发现服务器的速度突然变慢的时候,可以先确认本地的速度,不用第一时间怀疑自己的服务器问题。可以ping一下知名域名,看下ping值,如果ping值大,就说明自己电脑速度的问题。
3. 其服务器的物理资源不足够支撑运行
当你在使用服务器且越来越慢的时候,这时候你首先要注意的是你服务器的本身物理资源足不足够,如果磁盘空间都满了,服务器带不动程序运行,自然就会出现反应慢的现象,这个时候,你只需要增加一个内存,或者再添加一个处理器就能正常的运行了。
4. 电信或国际路由出现问题
如果电信网络等宽带供应商的国际路由有问题的话,服务器会变慢,使用海外服务器的朋友可能会常常遇到。如果节点无法断开或路由,则会影响通过该节点的用户,此时这些用户的服务器速度也会变慢。这种情况不是机房的原因,也不是本地电脑的原因,所以只能等宽带服务商修复路由了。
5. 资源不足或者服务器中毒原因
服务器资源不足的话,使用CPU或内存执行软件也会变慢,在这种情况下,可以优化系统。请不要执行非必要的软件。如果,服务器受到攻击时速度也会变慢,选择服务器时,建议选择安装有硬件防火墙的机房,进行服务器的基本安全防护工作。
如何清空服务器大文件
使用 shell重定向null(不存在的对象)到文件的最简单方法来清空文件内容
truncate命令将文件的大小缩小或扩展到定义的大小。
# > access.log
# true > access.log
# cat /dev/null > access.log
# echo > access.log
# echo "" > access.log
# truncate -s 0 access.log
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY