Veraltete WordPress Versionen auf dem Server via Bash-/Shell-Script finden
Geschätzte Lesedauer:
Vor einiger Zeit hatte ich schon einen Artikel dazu veröffentlicht, wie man veraltete Joomla Versionen via Bash Script findet.
Hier nun das entsprechende Script für WordPress, ohne viele Erklärungen, da das Vorgehen eigentlich genauso ist.
[pastacode lang=“bash“ message=“Shell-Script“ highlight=““ provider=“manual“]
#!/bin/bash
# aktuelle version
CUR=3.6
# ausgabe als CSV in Datei (optionaler Parameter)
OUTFILE=$1
vercomp () {
if [[ $1 == $2 ]]
then
return 0
fi
local IFS=.
local i ver1=($1) ver2=($2)
for ((i=${#ver1[@]}; i< ${#ver2[@]}; i++)) ; do
ver1[i]=0 ;
done
for ((i=0; i<${#ver1[@]}; i++)) ; do
if [[ -z ${ver2[i]} ]] ; then
ver2[i]=0
fi
if ((10#${ver1[i]} > 10#${ver2[i]})) ; then
return 1
fi
if ((10#${ver1[i]} < 10#${ver2[i]}))
then
return 2
fi
done
return 0
}
if [[ "$OUTFILE" != "" ]] ; then
# CSV Ausgabedatei leeren
echo -n "" > $OUTFILE ;
fi
for F in `find /var/www -wholename '**/wp-includes/version.php' | grep -v '/tmp/'` ; do
D=`dirname $F` ;
D=`dirname $D` ; # second time
ISOK=0 ;
SHOWNEWEST="" ;
IMPORTANCE=0 ;
VERSION=`grep -E '\\$wp_version[[:space:]]*=' $F|sed -r "s/^.*=\s*'(.*)'.*$/\1/g"` ;
#echo "${VERSION} < ${CUR} ?" ;
vercomp $VERSION $CUR ;
COMP=$? ;
#echo " $COMP" ;
if [[ $COMP -eq 2 ]] ; then
# version ist kleiner als aktuelle
SHOWNEWEST="${CUR}" ;
else
ISOK=1 ;
echo "[INFO] Version $VERSION in $D ist ok." ;
fi
if [[ $ISOK -eq 0 ]] ; then
echo "[WARN] Veraltete WP Version $VERSION in $D" ;
if [[ "$OUTFILE" != "" ]] ; then
# CSV Datei schreiben
echo "\"$D\";$VERSION;$SHOWNEWEST;$IMPORTANCE" >> $OUTFILE ;
fi
fi
done
exit 0 ;
[/pastacode]
Weitere aktuelle Artikel aus der Kategorie „Sonstiges“
- 20.09.2014Der Rote Panda, ein gefährdetes Tier
- 27.07.2013Meine Erfahrungen mit dem HTC One
- 23.07.2013Online Sports-Manager Frontend Teil 3: Aufstellung und Strategie
- 18.07.2013Referenz: Peppermind
- 18.07.2013Referenz: meet-ideas
2 Kommentare - bis jetzt!
Eigenen Kommentar verfassenUnd jetzt du! Deine Meinung?
Erforderliche Felder sind mit einem Asterisk (*) gekennzeichnet. Die E-Mail-Adresse wird nicht veröffentlicht.
Hi
kann es sein das hier ein Fehler drin ist in Zeile 17
wordpress-check.sh: Zeile 17: Syntaxfehler beim unerwarteten Wort `('
wordpress-check.sh: Zeile 17: ` for ((i=${#ver1[@]}; i< ${#ver2[@]}; i++)) do ver1[i]=0 done for ((i=0; i<${#ver1[@]}; i++)) do if [[ -z ${ver2[i]} ]] then # fill empty fields in ver2 with zeros ver2[i]=0 fi if ((10#${ver1[i]} > 10#${ver2[i]}))'
Getestet unter Debian 8
Hallo,
das ist korrekt. Scheinbar hat mir WordPress hier Zeilenumbrüche rausgeworfen. Ich habe den Code nun korrigiert.
Viele Grüße