揭秘:历经10年开发经验的服务器利器,掌握这些常用命令,让你操作服务器游刃有余!【中等】

100 阅读2分钟

在互联网世界中,服务器被认为是我们的“大脑”,它处理着大量的数据和请求,为我们提供各种网站、应用和服务。对于那些一直在互联网行业中打拼的人来说,服务器就像是我们至亲的朋友,我们时刻与它们相伴。但是,在与服务器朝夕相处的过程中,我发现有些常用命令是我们不能少掉的技能,它们让我们操作服务器更加得心应手。

下面,就让我带您一起探索那些历经了我10年开发经验的服务器常用命令吧!别担心,我会以通俗幽默的方式为您呈现,让您不仅能轻松理解这些命令,还能感受到其中的乐趣。

接下来,请坐稳,系好安全带,我们要启程了!

命令行连接服务器

ssh root@192.168.30.201

查看网卡带宽情况

iftop -i eth1 

查看linux版本

lsb_release -a
cat /etc/issue

查看shell版本

echo $s

定时任务

linux定时任务的设置:
crontab  -e 编辑
crontab  -l 查看
举例如下:
5       *        *           *      *     ls              指定每小时的第5分钟执行一次ls命令
30     5       *           *      *     ls              指定每天的 5:30 执行ls命令
30     7       8          *      *      ls              指定每月8号的7:30分执行ls命令
30     5       8          6     *      ls              指定每年的6月8日5:30执行ls命令
30     6       *           *     0      ls              指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]
30     3      10,20     *     *      ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]
25     8-11 *            *     *      ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]
*/15   *        *            *     *      ls          每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]
30    6      */10         *      *      ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令。 ]
每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件
50    7       *             *      *     root      run-parts      /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

查看系统磁盘及文件夹使用情况或大小

df -m 查看系统磁盘使用情况
du -sh * 查看当前文件大小  *可换成具体文件
​
du -s * | sort -nr | head -n 10 显示前10个占用空间最大的文件或目录 *可换成具体目录
​
du -sh * --exclude cache 排除某个文件夹

压缩解压

tar -czvf /tmp/etc.tar.gz /etc 压缩
​
排除掉某个目录压缩
​
tar -zcvf yun.tar.gz --exclude=yun/upload --exclude=yun/application/admin/cache  yun
​
tar -xzvf file.tar.gz //解压tar.gz
​
解压 
unrar x  XX.rar 解压

开机自启脚本

/etc/rc.d/rc.local
#开机自启脚本
  /home/jayzhen/jay/my.sh

PHP相关命令

ps -fe |grep "php-fpm"|grep "pool"|wc -l  //查看服务器进程数
netstat -pnt | grep :80 | wc -l //查询并发请求数量
ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }' //查询平均每个php-fpm进程占的内存数量
​
netstat -napo |grep "php-fpm" | wc -l  //查询当前php-fpm  数量  【不准】
​
lsof -i :9001|grep -v "PID"|awk '{print "kill -9",$2}'|sh 杀死所有占用9000端口的进程
​
netstat -apn | grep 9001 | wc -l  查看端口启动数量
​

进程查看相关

top -U www 查看www用户的进程详情
ps -ef |grep "nginx72"|wc -l 查看nginx72用户的进程数量

服务器运行状态相关命令

ps -aux 查看所有进程
   ps -T -p ${pid} 查看某个进程的线程
   查看系统进程树,他可以把各个进程之间的关系用树形结构标识出来。
 pstree -a 

查询当前进程占用内存前100个

ps auxw|head -1;ps auxw|sort -rn -k4|head -100
​
ps -A --sort -rss -o comm,pmem,pcpu |uniq -c |head -100
​

检测某个端口是否对外开放

lsof -i:(端口号)
如果有就说明开放了  没有就没开放 
TCP 121.40.153.138:mysql->58.246.194.146:63652 (ESTABLISHED)
被谁正在连接
netstat -lntp 监听所有端口被谁占用情况

查看文件数量

ls | wc -c

删除指定日期之前的文件

find ./ -mtime +400 -type f -exec rm -f {} \
/tmp --设置查找的目录;
-mtime +30 --设置时间为30天前;
-type f --设置查找的类型为文件;
-name '*.sh[ab]' --设置文件名称中包含sha或者shb,最好有引号,否则有时会报find: paths must precede expression
-exec rm -f --查找完毕后执行删除操作;
{} ; 一定要有否则报 find: missing argument to '-exec'

递归删除指定后缀的文件

find . -name '*.exe' -type f -print -exec rm -r {} ;

创建软连接

ln -s 源文件或目录 目标软链接文件
# 示例
ln -s /home/lighthouse/test.txt test.link
ln -s /home/lighthouse/test test

mount挂载

fdisk -l

mount /dev/mapper/vg_htxd-lv_home /lv_home

第二种

lsblk

mkfs.ext3 /dev/xvdd

mount /dev/xvdd /目标路径

mount /dev/vdk /目标路径

卸载: umount /dev/vdf