Shell 脚本入门:把每天重复敲的命令写成一个文件,一键跑完

举报
yd_286960584 发表于 2026/11/06 10:35:18 2026/11/06
【摘要】 如果你每天上服务器都要敲同一串命令,比如先 df -h 看磁盘、再 systemctl status 看服务、最后备份一次数据库,那这些命令就该写进脚本里,不该天天靠手敲。Shell 脚本说白了就是一个文本文件,里面按顺序写着你要执行的命令,执行它就等于你亲手把这些命令一条条敲了一遍,只是不用再敲第二遍。第一步,写第一个脚本。新建一个文件 check.sh,第一行写 #!/bin/bash,...

如果你每天上服务器都要敲同一串命令,比如先 df -h 看磁盘、再 systemctl status 看服务、最后备份一次数据库,那这些命令就该写进脚本里,不该天天靠手敲。Shell 脚本说白了就是一个文本文件,里面按顺序写着你要执行的命令,执行它就等于你亲手把这些命令一条条敲了一遍,只是不用再敲第二遍。
第一步,写第一个脚本。新建一个文件 check.sh,第一行写 #!/bin/bash,这是告诉系统用 bash 来跑它。第二行写 echo "开始巡检",第三行写 df -h,第四行写 date。保存后先给它执行权限:chmod +x check.sh,然后 ./check.sh 就能跑起来。看到巡检两个字和磁盘信息打出来,第一个脚本就成了。记住:脚本文件本身不神秘,它就是命令的清单。
第二步,用变量少写重复的东西。备份命令里数据库名、日期天天变,硬写进命令里改起来麻烦,变量就是给这些值起个名字:BACKUP_DIR=/backup,DATE=$(date +%Y%m%d),后面用 $BACKUP_DIR/$DATE 引用,改一处就全改了。日期变量尤其实用,备份文件名带上当天日期,旧备份就不会把新备份覆盖掉。变量赋值时等号两边别加空格,这是新手最常踩的坑。
第三步,用循环批量做重复的事。三个网站要挨个查状态,别写三遍同样的命令,写一个 for 循环:for site in a.com b.com c.com; do curl -I $site; done,一行就把三个站都查了。循环里的命令和你平时敲的完全一样,只是前面多了个 for、后面多了个 done。先拿 echo 试循环、确认输出对了,再换成真命令,这是避免批量误操作的好习惯。
第四步,让脚本每天自己跑。脚本写好只是省了敲命令,配上定时任务才算自动:这就是 11 月 3 日那篇 Cron 的用武之地——crontab 里加一行 0 8 * * * /root/check.sh,脚本每天早上 8 点自己跑,输出可以重定向到日志文件里,早上起来看一眼日志就行。脚本加定时这对组合,就是一台服务器日常运维最省事的起点。
最后说三条安全线。第一,脚本里别写 rm -rf 这类删东西的命令,尤其别带变量拼路径,删错了找不回来;备份、巡检这类只读操作最适合练手。第二,正式跑之前先在测试目录跑一遍,确认每一步输出都对再上生产。第三,脚本改动后重新跑一次,别以为只改了一个字就没事——脚本出错往往就是那一个字。
总结一下:脚本就是命令清单,变量省重复、循环省批量、定时省每天动手。今天就把你最常敲的那三条命令写进一个 .sh 文件,跑通一次,明天起这件事就不用你再亲手做了。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。