我如何自动执行每天在 Linux 上运行的命令?

我如何自动执行每天在 Linux 上运行的命令?

每天早上,我都会通过 SSH 进入某个服务器。我会检查磁盘空间、一些目录的大小以及某些特定目录的内容。

当我不是最清醒的时候,所有这些都需要大量的打字和回忆(目录位置)。

有没有更聪明的方法来做到这一点...某种脚本可以代替我每天早上进行的一些手动打字工作?

答案1

是的,您可能可以通过 bash 脚本完成大部分工作。然后将其放入 cron.daily 或发行版的等效程序中,让它每天运行。

从概念上讲,您可以从脚本中调用与手动执行相同的命令,但您可能希望重定向输出以附加临时文件,然后在完成后将该文件的内容通过电子邮件发送给您自己,以便您可以阅读摘要。

答案2

在您的日常会话之后,只需将输出传输history | cut -c 8-到文件,然后清理它。

history | cut -c 8- > dailystatuscheck.sh

您需要添加重定向,将每个命令的输出附加到文件中,然后添加一行以将文件通过电子邮件发送给您自己。然后,在测试后,只需将您创建的脚本添加到 cron.daily 即可。

前:

df -h
cd /var/log
grep ERROR *.log

后:

df -h >> /tmp/$$.log
cd /var/log >> /tmp/$$.log
grep ERROR *.log >> /tmp/$$.log
mail -s "Daily Status" [email protected] << $$.log
rm $$.log

如果您感觉特别懒惰(优秀程序员的美德之一 ;-),请添加一些处理来确定是否需要采取行动。例如,如果可用空间少于 90%,请立即提醒您或将电子邮件标记为紧急。

答案3

当然,您可以编写一个 shell 脚本并将其保存在远程服务器上,以自动执行此类工作。使用 Google 查看一些 bash 脚本教程。然后,您只需通过 ssh 进入服务器并运行该脚本即可。

相关内容