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