運用終了したスクリプトですが、備忘としてメモ。
Paloaltoで、User-IDエージェントと連携させて、Active Directoryのユーザ情報を取得できているか確認するためのスクリプトです。 Paloaltoのバグで、AD情報を一切取得できなくなる不具合がありましたので、その際再発を検知するために書いたスクリプトです。
ちなみに、Paloaltoでの確認コマンドは以下の通りです。
$ show user ip-user-mapping all
############################################################# # # Check AD Users Script for PaloAlto # # CREATE : 2016/4/14 # UPDATE : None # ############################################################# ################## ### Variable ################## today=`date +%Y%m%d_%H%M%S` # Machine hostname='Paloalto' user='admin' host='192.168.1.1' user_pass='admin' # Path logdir='/tmp' log="${logdir}/${hostname}_${today}.log" #log="${logdir}/test.log" # Command c_grep='/bin/egrep' c_pager='set cli pager off' c_check='show user ip-user-mapping all' c_mailx='mailx' ################## ### Mail Send ################## Mail_Send() { # Create Mail Subject number=$(cat ${log} | ${c_grep} "Total:" ) if [[ $number == "Total: 0 users" ]] ;then subject=">>> Critical <<< The Number of User Account is ${number}" elif [[ $number != "Total: 0 users" ]] ;then subject="The Number of User Account is ${number}" fi #Create Mail Body msg="" #Chose Address fromaddr="test@example.com" toaddr="test2@example.com test3@example.com" # Send Mail echo -e "${msg}" | ${c_mailx} -s "${subject}" -r ${fromaddr} ${toaddr} } ################## ##### Delete ##### ################## Log_Delete() { rm -f ${log} } ################## ##### Main ##### ################## # Check users { expect -c " set timeout 60 spawn ssh -l $user $host expect \"Password:\"; send \"$user_pass\n\" sleep 1 expect \"admin@paloalto>\"; send \"$c_pager\n\" sleep 1 expect \"admin@paloalto>\"; send \"$c_check\n\" sleep 1 expect \"admin@paloalto>\"; send \"exit\n\" expect eof " } >> ${log} # Send alert mail Mail_Send # Delete Log_Delete 2>&1
たまには、スクリプト書きたい。