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