Skip to content

Instantly share code, notes, and snippets.

@cPLevey
Last active August 2, 2016 04:09
Show Gist options
  • Select an option

  • Save cPLevey/a4f1bbbca70525f8fc27ea5a571070c6 to your computer and use it in GitHub Desktop.

Select an option

Save cPLevey/a4f1bbbca70525f8fc27ea5a571070c6 to your computer and use it in GitHub Desktop.
CMS Versions - Out of Date Checker
#!/bin/sh
HTTPDROOT=$(httpd -V 2>/dev/null |grep HTTPD_ROOT |awk '{gsub("-D HTTPD_ROOT=", "");gsub(/"/, "");gsub(" ","");print}');
HTTPDCONF=$(httpd -V 2>/dev/null |grep SERVER_CONFIG_FILE |awk '{gsub("-D SERVER_CONFIG_FILE=", "");gsub(/"/, "");gsub(" ", "");print}');
CONFPATH=$(echo $HTTPDROOT/$(echo $HTTPDCONF));
if [ -d "/etc/httpd/conf/plesk.conf.d/vhosts/" ]; then
DOCROOTS=$(grep -RPo --no-filename '\/var\/www\/vhosts\/(.*)\/httpdocs' /var/www/vhosts/system/*/conf/ | uniq);
else
DOCROOTS=$(grep "DocumentRoot" $CONFPATH |awk '{gsub(" DocumentRoot ", "");print}');
fi;
LATESTVERSINFO=$(curl -s 'http://repo.servergur.us/sshtool/server_crons/cms_latest');
WPLATEST=$(echo "$LATESTVERSINFO" |grep WordPress |awk '{print $2}');
JLATEST=$(echo "$LATESTVERSINFO" |grep Joomla |awk '{print $2}');
DLATEST=$(echo "$LATESTVERSINFO" |grep Drupal |awk '{print $2}');
echo "Latest WordPress Version: $WPLATEST";
echo "Latest Joomla! Version(s): $JLATEST";
echo "Latest Drupal Version(s): $DLATEST";
echo " ";
echo "Searching for **OUTDATED** WordPress versions...";
echo " ";
for i in $DOCROOTS;
do
if [ -d "$i" ]; then
find $i -type f -iwholename "*/wp-includes/version.php" -exec grep -H "\$wp_version =" {} \; | grep -v "$WPLATEST";
fi;
done;
echo " ";
echo "Searching for **OUTDATED** Joomla! versions...";
echo " ";
for i in $DOCROOTS;
do
if [ -d "$i" ]; then
find $i -type f \( -iwholename '*/libraries/joomla/version.php' -o -iwholename '*/libraries/cms/version.php' -o -iwholename '*/libraries/cms/version/version.php' \) -print0 -exec perl -e 'while
(<>) { $release = $1 if m/ \$RELEASE\s+= .([\d.]+).;/; $dev = $1 if m/ \$DEV_LEVEL\s+= .(\d+).;/; } print qq( = $release.$dev\n);' {} \; | grep -v "$JLATEST";
fi;
done;
echo " ";
echo "Searching for **OUTDATED** Drupal versions...";
echo " ";
for i in $DOCROOTS;
do
if [ -d "$i" ]; then
find $i -type f -iwholename "*/modules/system/system.info" -exec grep -H "version = \"" {} \; | grep -v "$DLATEST";
fi;
done;
echo " ";
echo " ";
echo "**OUTDATED** CMS version search completed."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment