매주 목요일 보고서를 생성하는 스크립트 작성 [닫기]

매주 목요일 보고서를 생성하는 스크립트 작성 [닫기]

매주 목요일마다 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

관련 정보