编写脚本以生成每周四的报告

编写脚本以生成每周四的报告

每个星期四我们必须为 18 台服务器发送如下报告

帐户:swebwpsp 服务器名称:nykpsr17896 磁盘空间使用率:70 %(我们使用 df -kh 命令)日期:20-09-2018

同样我们有 18 台服务器

我们可以自动化这个吗?

答案1

您可以使用计划任务定期运行任务,包括每周在一周的特定一天运行一次。您可以编写脚本来查询服务器列表,然后保存报告。

crontab -e以您想要运行任务的用户身份运行。例如:

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  *     command to be executed
  0  0  *  *  thu  /path/to/your/script

读取服务器列表并通过 ssh 执行命令的脚本示例:

#!/bin/sh
report="report-$(date -I)" # report file
servers="servers.txt"      # file containing a list of hosts
command="df -hk"           # command to execute at remote host

exec 1>$report             # redirect output to report file
exec 2>&1                  # stderr to stdout

while IFS= read -r server; do
    echo "querying server: ${server}"
    ssh -n "${server}" -- "${command}" 
done < $servers

相关内容