Skip to content

Instantly share code, notes, and snippets.

@mbrammer
Last active December 20, 2015 19:28
Show Gist options
  • Save mbrammer/6183189 to your computer and use it in GitHub Desktop.
Save mbrammer/6183189 to your computer and use it in GitHub Desktop.
Shell script to check Joomla versions of virtual hosts
#!/bin/bash
# Colors
ESC_SEQ="\033["
COL_RESET=$ESC_SEQ"39m"
COL_RED=$ESC_SEQ"31m"
COL_GREEN=$ESC_SEQ"32m"
COL_YELLOW=$ESC_SEQ"33m"
COL_BLUE=$ESC_SEQ"34m"
COL_MAGENTA=$ESC_SEQ"35m"
COL_CYAN=$ESC_SEQ"36m"
# Where to start scanning
WEBHOME=/var/www/vhosts
# Directory depth
WEBHOMECOUNT=$(($(echo "${WEBHOME}"|grep -o "/"|wc -l| sed s/\ //g)+2))
echo "=============================================================================="
echo "Joomla versions in $WEBHOME"
echo "------------------------------------------------------------------------------"
# Search for 'libraries/cms/version/version.php' (Joomla 2.5 - 3)
for i in $(tree -L 10 -if ${WEBHOME} | grep 'libraries/cms/version/version.php'); do
SITE=$(echo $i|awk -v count="$WEBHOMECOUNT" -F/ '{for(j=count;j<=NF-4;j++) \
printf $j"/"}' | sed 's/.$//g')
RELEASE=$(grep "\$RELEASE" $i|awk -F\' '{print $2}')
DEVLVL=$(grep "\$DEV_LEVEL" $i|awk -F\' '{print $2}')
if [ ! -z "$RELEASE" ]
then
echo " $COL_YELLOW$SITE $COL_RESET- $COL_RED$RELEASE.$DEVLVL$COL_RESET"
fi
done
# Search for 'includes/version.php' (Joomla 1.0 & 1.7)
for i in $(tree -L 10 -if ${WEBHOME} | grep 'includes/version.php'); do
SITE=$(echo $i|awk -v count="$WEBHOMECOUNT" -F/ '{for(j=count;j<=NF-3;j++) \
printf $j"/"}' | sed 's/.$//g')
RELEASE=$(grep "\$RELEASE" $i|awk -F\' '{print $2}')
DEVLVL=$(grep "\$DEV_LEVEL" $i|awk -F\' '{print $2}')
if [ ! -z "$RELEASE" ]
then
echo " $COL_YELLOW$SITE $COL_RESET- $COL_RED$RELEASE.$DEVLVL$COL_RESET"
fi
done
# Search for 'libraries/joomla/version.php' (Joomla 1.5-1.6)
for i in $(tree -L 10 -if ${WEBHOME} | grep 'libraries/joomla/version.php'); do
SITE=$(echo $i|awk -v count="$WEBHOMECOUNT" -F/ '{for(j=count;j<=NF-3;j++) \
printf $j"/"}' | sed 's/.$//g')
RELEASE=$(grep "\$RELEASE" $i|awk -F\' '{print $2}')
DEVLVL=$(grep "\$DEV_LEVEL" $i|awk -F\' '{print $2}')
if [ ! -z "$RELEASE" ]
then
echo " $COL_YELLOW$SITE $COL_RESET- $COL_RED$RELEASE.$DEVLVL$COL_RESET"
fi
done
echo "-----------------------------------------------------------------------------"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment