毎週木曜日のレポートを生成するスクリプトの作成 [閉じる]

毎週木曜日のレポートを生成するスクリプトの作成 [閉じる]

毎週木曜日ごとに、18 台のサーバーに対して次のレポートを送信する必要があります。

アカウント:swebwpspサーバー名:nykpsr17896ディスク容量使用率:70%(df -khコマンドを使用)日付:2018-09-20

同様に、私たちは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

おすすめ記事