sample

全ユーザに対しcrontabが定義されていないか確認

crontabが登録されていないか全てのユーザに対し調査する

先日複数サーバそれぞれのユーザでcrontabが設定されていないかどうか確認する必要が出てきたので作ってみました。

サンプルスクリプト
#!/bin/bash

output_dir="/home/sooni/logs"
host_name=$(hostname)
output_file="$output_dir/"$host_name"_cron_check_results.txt"

current_time=$(date +"%Y-%m-%d %H:%M:%S")
echo "---------------------------------------------------------"  > "$output_file"
echo $host_name "$current_time"  >> "$output_file"
echo "---------------------------------------------------------"  >> "$output_file"

# ユーザーリストを取得し、ループ処理
for user in $(cut -d: -f1 /etc/passwd)
do
    # crontabの内容を表示し、存在する場合はファイルに追記
    #crontab -u "$user" -l >/dev/null 2>&1
    crontab -u "$user" -l > $output_dir/"$user"_crontab.txt
    if [ $? -eq 0 ]
    then
        echo "User $user has a crontab set." >> "$output_file"
    else
        echo "User $user does not have a crontab set." >> "$output_file"
        rm $output_dir/"$user"_crontab.txt
    fi
done
スポンサーリンク
タイトルとURLをコピーしました