Skip to content

Instantly share code, notes, and snippets.

@kholisrag
Last active January 18, 2024 10:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kholisrag/a4d814223570350aa15bd5dc3faa69a1 to your computer and use it in GitHub Desktop.
Save kholisrag/a4d814223570350aa15bd5dc3faa69a1 to your computer and use it in GitHub Desktop.
List All CronJob in an List of Instances defined in `instances.cfg` with gcloud compute network tags
#!/bin/bash
instance_list="instances.cfg"
date=$(date +'%FT%TZ')
mkdir -pv $(pwd)/cronjob-logs
mkdir -pv $(pwd)/cronjob-logs/$date
while read instance_name <&3
do
echo "----------------------------------------------" 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
echo "CronJob List for Instance : $instance_name" 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
ssh $instance_name 'for user in $(sudo cut -f1 -d: /etc/passwd); do echo "CronJob for User : $user" && sudo crontab -u $user -l; done' 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
echo "----------------------------------------------" 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
echo "List of Network Tags of Instance : $instance_name" 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
gcloud compute instances describe $instance_name --format='get(tags.items)' | tr ';' '\n' | grep -v '^$' 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
echo "----------------------------------------------" 2>&1 | tee -a $(pwd)/cronjob-logs/$date/$instance_name-cronjob.log
done 3< <(grep -v '^#' ${instance_list})
echo "CronJob List are available at $(pwd)/cronjob-logs/$date"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment