菜鸟科技网

服务器运行命令有哪些?

服务器运行命令是管理和维护服务器的核心操作,涵盖了系统监控、进程管理、网络配置、文件操作等多个方面,无论是系统管理员还是开发人员,都需要熟练掌握常用命令以确保服务器稳定运行,以下从不同场景出发,详细介绍服务器运行命令的具体应用及注意事项。

服务器运行命令有哪些?-图1
(图片来源网络,侵删)

系统基础命令

系统基础命令是服务器日常运维中最常使用的操作,主要包括系统信息查看、进程管理、用户权限控制等。uname -a用于显示系统详细信息(如内核版本、主机名等),tophtop命令可实时监控系统进程和资源占用情况。ps -ef列出所有进程,配合grep可筛选特定进程,如ps -ef | grep nginx查看Nginx相关进程,对于进程管理,kill命令用于终止进程,kill -9强制终止进程,而systemctl命令则用于管理系统服务,如systemctl start nginx启动Nginx服务,systemctl enable nginx设置开机自启。

用户权限方面,sudo命令允许普通用户以超级用户身份执行操作,useradduserdel分别用于创建和删除用户,passwd用于修改用户密码,文件操作中,ls -la显示文件详细信息,chmod修改文件权限(如chmod 755 file设置所有者可读写执行,其他用户可读执行),chown修改文件所有者(如chown user:group file)。

网络配置与监控命令

网络相关命令用于诊断连接问题、配置网络参数及监控流量。ifconfigip addr命令查看网络接口信息,ping测试网络连通性(如ping 8.8.8.8),netstat -tuln显示监听端口及状态。ssnetstat的替代工具,功能更强大,如ss -tulnp | grep 80查看80端口占用情况,防火墙配置中,iptables是传统Linux防火墙工具,而firewall-cmd适用于CentOS 7+的firewalld服务,如firewall-cmd --add-port=80/tcp --permanent开放80端口并永久生效。

网络监控方面,nmap用于端口扫描(如nmap -p 1-1000 192.168.1.1扫描目标主机前1000个端口),tcpdump抓取网络数据包(如tcpdump -i eth0 port 80捕获80端口流量)。wgetcurl用于下载文件或测试HTTP服务,如curl -I http://example.com查看HTTP响应头。

服务器运行命令有哪些?-图2
(图片来源网络,侵删)

磁盘与文件系统管理命令

磁盘管理命令用于查看磁盘使用情况、分区管理及文件操作。df -h显示磁盘分区使用率(-h以人类可读格式显示),du -sh *统计当前目录下各文件及子目录大小。fdiskgdisk用于磁盘分区(如fdisk /dev/sdb),mkfs格式化文件系统(如mkfs.ext4 /dev/sdb1创建ext4分区)。mountumount命令用于挂载和卸载文件系统,如mount /dev/sdb1 /mnt/data将分区挂载到/mnt/data

文件操作中,cpmvrm分别用于复制、移动、删除文件,mkdir -p递归创建目录(如mkdir -p /path/to/dir)。tar命令用于压缩解压,如tar -czf archive.tar.gz /path/to/dir压缩目录,tar -xzf archive.tar.gz解压,对于大文件处理,split可将文件分割为小文件(如split -l 1000 largefile.txt small_),cat合并文件(如cat small_* > merged_file.txt)。

日志与监控命令

日志管理是排查服务器问题的关键,tail -f /var/log/nginx/access.log实时查看Nginx访问日志,grep过滤日志内容(如grep "error" /var/log/syslog)。journalctl用于查看系统日志(如journalctl -u nginx.service查看Nginx服务日志),logrotate管理日志轮转,防止日志文件过大。

性能监控方面,vmstat报告虚拟内存统计,iostat监控磁盘I/O性能(如iostat -x 1每秒输出一次详细磁盘统计),free -h显示内存使用情况,对于应用性能,strace跟踪系统调用(如strace -p nginx_pid),perf分析性能瓶颈(如perf record -g nginx_pid)。

服务管理与自动化命令

服务管理确保服务器应用稳定运行,systemctl是主流工具,支持启动、停止、重启服务(如systemctl restart mysql),systemctl status查看服务状态。service命令是传统工具(如service apache2 restart),但逐渐被systemctl替代。

自动化运维中,cron用于定时任务(如crontab -e编辑任务,0 2 * * * /backup/script.sh每天凌晨2点执行备份脚本),ansiblesaltstack实现批量管理服务器,脚本编写常结合bash,如#!/bin/bash开头,for循环遍历文件,if条件判断等。

安全相关命令

服务器安全至关重要,ssh用于远程登录(如ssh user@192.168.1.1 -p 22),scp安全传输文件(如scp file.txt user@remote:/path/to/dest)。fail2ban防止暴力破解(如fail2ban-client set ssh banip 192.168.1.100封禁IP),chmod 600 ~/.ssh/authorized_keys限制SSH密钥权限。

漏洞扫描中,nmap探测开放端口,lynis进行系统安全审计(如lynis audit system),openvas扫描已知漏洞,定期更新系统依赖可提升安全性,如apt update && apt upgrade(Debian/Ubuntu)或yum update(CentOS/RHEL)。

命令执行注意事项

执行服务器命令需谨慎,特别是rm -rfdd等高危命令,建议先备份或测试,生产环境应避免直接操作,优先在测试环境验证,命令组合时注意管道符和重定向>>>的正确使用,避免数据丢失,善用man命令查看帮助(如man systemctl),或--help参数(如systemctl --help)。

相关问答FAQs

Q1: 如何查看服务器某个进程占用的CPU和内存资源?
A1: 可使用top命令按P键(CPU占用)或M键(内存占用)排序,或通过ps -p <进程ID> -o %cpu,%mem查看特定进程的资源占用。ps -p 1234 -o %cpu,%mem显示进程ID为1234的CPU和内存百分比。

Q2: 如何设置定时任务每天凌晨3点自动备份MySQL数据库?
A2: 使用crontab -e编辑定时任务,添加以下行:0 3 * * * /usr/bin/mysqldump -u root -p'密码' database_name | gzip > /backup/mysql_$(date +\%Y\%m\%d).sql.gz0 3 * * *表示每天3点整执行,mysqldump备份数据库并压缩存储到/backup目录,文件名包含日期,注意密码建议使用配置文件或密钥管理,避免明文暴露。

分享:
扫描分享到社交APP
上一篇
下一篇