前几篇教程已经带大家走完了从连接到进阶的全流程。今天这篇是“效率篇”的收官之作,核心只讲一件事:如何用 FinalShell 把重复性工作变成“一键执行”

运维圈有句老话:“懒是程序员的美德。”这里的“懒”不是偷工减料,而是不愿在重复劳动上浪费精力。FinalShell 内置了多种自动化工具,用好了,你的日常运维工作量起码减半。

场景一:告别反复敲命令——快捷命令的进阶玩法

快捷命令是 FinalShell 最容易被低估的功能。很多人只是把它当成“命令收藏夹”,其实它的玩法远不止于此。

基础用法:保存长命令

打开“命令”面板 → “添加命令”,把那些又长又容易记混的命令存起来,比如:

  • 查看 Nginx 错误日志:tail -f /var/log/nginx/error.log

  • 清理 Docker 缓存:docker system prune -a -f

  • 查看 TCP 连接状态汇总:netstat -ant | awk '{print $6}' | sort | uniq -c

下次需要时双击一下就能自动填入终端。对于记性不太好的同学,这功能堪称福音

进阶玩法:命令参数化

更高级的是,FinalShell 支持带变量的快捷命令。比如你经常需要查看不同服务的日志,可以建一个这样的快捷命令:

text
命令模板:tail -f /var/log/${service}.log

执行时弹出一个输入框让你填 service 的值,填 nginx 就查 Nginx 日志,填 mysql 就查 MySQL 日志。一条命令覆盖所有场景,不用重复保存多份

高级玩法:组合命令一键部署

如果你每次部署项目都要执行一串操作——拉代码、装依赖、重启服务,可以把这几步串成一个脚本保存为快捷命令

bash
cd /var/www/project
git pull origin master
npm install
pm2 restart all

以后每次部署,双击这个命令,一键完成整条流水线。把“流程”变成“按钮”,这才是自动化的精髓。

场景二:百台服务器统一操作——批量命令的正确姿势

当管理的服务器数量超过三台,“一台台敲命令”就成了效率黑洞。FinalShell 的批量执行命令功能专门解决这个问题

操作流程

  1. 在左侧连接管理器里,按住 Ctrl(Mac 是 Command)选中多台服务器。

  2. 右键 → “批量输入命令”或“发送命令到所有会话”。

  3. 在弹出的框里输入要执行的命令,点确定。

  4. 所有服务器同时执行,结果逐台返回

实战场景:批量磁盘检查

比如每天早上巡检所有服务器的磁盘空间:

text
df -h | grep -v tmpfs

只需敲一次,几十台机器的磁盘使用情况全部返回,哪些快满了一目了然

脚本批量的正确做法

如果命令比较复杂,建议写成脚本统一执行

  1. 准备脚本:把要执行的操作写成一个 .sh 文件,先在一台测试机上跑通。

  2. 分发脚本:通过 FinalShell 的文件管理功能,把脚本上传到所有目标服务器的相同路径(比如 /opt/scripts/)。

  3. 批量执行:选中所有服务器,批量执行 chmod +x /opt/scripts/check.sh && /opt/scripts/check.sh

关键提醒:脚本里尽量避免硬编码某台服务器的专属信息(比如固定的 IP 地址),确保在任何目标机器上都能通用

批量文件传输

如果需要把同一个文件发给多台服务器,FinalShell 也支持。在文件管理区选中文件,右键“发送到多台服务器”,选目标机器就行。支持断点续传,大文件传输中断了也能接着传

场景三:用别名给常用操作“起外号”

如果你习惯在终端里敲命令,FinalShell 还支持命令别名(Alias)。在连接设置里可以自定义,比如:

别名 实际命令 场景
ll ls -alhF --color=auto 更友好的目录列表
logs tail -f /var/log/syslog 快速查看系统日志
nginx systemctl status nginx 快速查看服务状态

设置一次,所有会话生效。习惯之后,敲三个字母能干的事,绝不打一行完整的命令

场景四:定时任务自动化——把“日常”交给脚本

有些任务是定期要做的,比如:

  • 每周一备份数据库

  • 每天凌晨清理临时文件

  • 每小时检查一次服务是否存活

这些完全可以在服务器端用 crontab 设置定时任务,但 FinalShell 的脚本执行功能可以帮你一次性写好脚本并推送到所有服务器,然后统一配置 crontab。

操作示例

  1. 写备份脚本 backup.sh

bash
#!/bin/bash
DATE=$(date +%Y%m%d)
mysqldump -u root -p'your_password' your_db > /backup/db_$DATE.sql
gzip /backup/db_$DATE.sql
# 只保留最近7天的备份
find /backup -name "*.sql.gz" -mtime +7 -delete
  1. 上传到所有服务器的 /opt/backup/ 目录(用批量文件传输)。

  2. 批量执行安装定时任务的命令

bash
echo "0 2 * * * /opt/backup/backup.sh" >> /var/spool/cron/root

之后每天凌晨 2 点,所有服务器自动备份数据库,再也不用半夜爬起来操作了

写在最后

自动化是运维效率的分水岭。能用工具自动完成的事,就别用手动操作去磨时间。

FinalShell 提供的快捷命令、批量执行、别名、脚本分发这四大自动化武器,用好了能让你的日常运维从“搬砖”变成“指挥”。今天花一小时配置好这些自动化工具,往后每天都能省下一小时的重复劳动——这笔账,怎么算都划算。

FinalShell声明:FinalShell站所有内容,资源,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。