¿Sabes donde están los WordPress en tu servidor? ¿Y si alguno tiene actualizaciones pendientes?
Con este bash podrás indicar la ruta a partir de la cual buscar los WordPress y listar las actualizaciones que tenga pendientes.
Primero indicaremos la ruta a partir de la cual buscar:
HOST_PATH="/webs/"Posteriormente actualiza WP-CLI:
# PONIENDO AL DIA WP-CLI
echo ""
echo "Actualizando WP-CLI a la última versión:"
wp cli check-update --quiet
wp cli update --quiet
wp cli versionPara buscar WordPress es necesaria la extensión del FIND. En caso de no estar, la instalará.
# INSTALANDO WP-CLI FIND
echo ""
echo "Revisando el buscador de WP-CLI:"
if [ `wp package list --fields=name --format=csv | grep 'wp-cli/find-command'` ]
then
  echo "Buscador de WP-CLI instalado."
else
  echo "Instalando buscador de WP-CLI:"
  wp package install wp-cli/find-command --quiet
  if [ -z wp package list --fields=name --format=csv | grep 'wp-cli/find-command' ]
  then
  echo "Buscador de WP-CLI instalado."
  else
    echo "Se ha producido un error. No se ha podido instalar el buscador de WP-CLI."
    echo "Prueba a instalarlo manualmente."
    echo ""
    echo "wp package install wp-cli/find-command"
    echo ""
    exit 1
  fi
fiBuscaremos todos los sitios:
# BUSCANDO SITIOS
echo ""
echo "Buscando sitios WordPress:"
WP_DATA=`wp find $HOST_PATH --format=csv --fields=wp_path,version | awk FNR-1`
WP_TOTAL=`echo "$WP_DATA" | wc -l`
echo "Se ha encontrado un total de ${WP_TOTAL} WordPress".A partir de aquí, mostramos la información de los WordPress que se encuentren:
  echo ""
  echo "WordPress"
  echo ""
  WP_PATH=`echo "$WP_D" | awk -F, 'NR { print $1 }'`
  echo "- Ruta:                ${WP_PATH}"
  WP_SITE_NAME=`wp option get blogname --path="${WP_PATH}"`
  echo "- Nombre:              ${WP_SITE_NAME}"
  WP_SITE_URL=`wp option get siteurl --path="${WP_PATH}"`
  echo "- URL:                 ${WP_SITE_URL}"
  WP_VERSION=`echo "$WP_D" | awk -F, 'NR { print $2 }'`
  echo "- Versión WP:          ${WP_VERSION}"
  WP_VERSION_UPD=`wp core check-update --path="${WP_PATH}" --format=csv | awk FNR-1 | awk -F, 'NR { print $1 }'`
  if [ $WP_VERSION_UPD ]
  then
    echo "- Actualización:       ${WP_VERSION_UPD}"
  fiDe los temas:
  echo ""
  echo "Themes"
  echo ""
  WP_THEMES=`wp theme list --fields=name,update,version,update_version --format=csv --path="${WP_PATH}" | awk FNR-1`
  WP_TOTAL_THEMES=`echo "$WP_THEMES" | wc -l`
  echo "- Temas:               ${WP_TOTAL_THEMES} temas".
  for WP_T in $WP_THEMES
  do
    WP_THEME_UPD=`echo "${WP_T}" | awk -F, 'NR { print $2 }'`
    if [ $WP_THEME_UPD == "available" ]
    then
      WP_THEME_NAME=`echo "${WP_T}" | awk -F, 'NR { print $1 }'`
      WP_THEME_ACT=`echo "${WP_T}" | awk -F, 'NR { print $3 }'`
      WP_THEME_NEW=`echo "${WP_T}" | awk -F, 'NR { print $4 }'`
      echo "- Tema actualizable:   ${WP_THEME_NAME} ${WP_THEME_ACT} -> ${WP_THEME_NEW}"
    fi
  doneY de los plugins:
  echo ""
  echo "Plugins"
  echo ""
  WP_PLUGINS=`wp plugin list --fields=name,update,version,update_version --format=csv --path="${WP_PATH}" | awk FNR-1`
  WP_TOTAL_PLUGINS=`echo "$WP_PLUGINS" | wc -l`
  echo "- Plugins:             ${WP_TOTAL_PLUGINS} plugins".
  for WP_P in $WP_PLUGINS
  do
    WP_PLUGIN_UPD=`echo "${WP_P}" | awk -F, 'NR { print $2 }'`
    if [ $WP_PLUGIN_UPD == "available" ]
    then
      WP_PLUGIN_NAME=`echo "${WP_P}" | awk -F, 'NR { print $1 }'`
      WP_PLUGIN_ACT=`echo "${WP_P}" | awk -F, 'NR { print $3 }'`
      WP_PLUGIN_NEW=`echo "${WP_P}" | awk -F, 'NR { print $4 }'`
      echo "- Plugin actualizable: ${WP_PLUGIN_NAME} ${WP_PLUGIN_ACT} -> ${WP_PLUGIN_NEW}"
    fi
  doneY el bash script completo aquí:
#!/bin/bash
#####
HOST_PATH="/webs/"
#####
# PONIENDO AL DIA WP-CLI
echo ""
echo "Actualizando WP-CLI a la última versión:"
wp cli check-update --quiet
wp cli update --quiet
wp cli version
# INSTALANDO WP-CLI FIND
echo ""
echo "Revisando el buscador de WP-CLI:"
if [ `wp package list --fields=name --format=csv | grep 'wp-cli/find-command'` ]
then
  echo "Buscador de WP-CLI instalado."
else
  echo "Instalando buscador de WP-CLI:"
  wp package install wp-cli/find-command --quiet
  if [ -z wp package list --fields=name --format=csv | grep 'wp-cli/find-command' ]
  then
  echo "Buscador de WP-CLI instalado."
  else
    echo "Se ha producido un error. No se ha podido instalar el buscador de WP-CLI."
    echo "Prueba a instalarlo manualmente."
    echo ""
    echo "wp package install wp-cli/find-command"
    echo ""
    exit 1
  fi
fi
# BUSCANDO SITIOS
echo ""
echo "Buscando sitios WordPress:"
WP_DATA=`wp find $HOST_PATH --format=csv --fields=wp_path,version | awk FNR-1`
WP_TOTAL=`echo "$WP_DATA" | wc -l`
echo "Se ha encontrado un total de ${WP_TOTAL} WordPress".
for WP_D in $WP_DATA
do
  echo ""
  echo "********************************************************************************"
  echo ""
  echo "WordPress"
  echo ""
  WP_PATH=`echo "$WP_D" | awk -F, 'NR { print $1 }'`
  echo "- Ruta:                ${WP_PATH}"
  WP_SITE_NAME=`wp option get blogname --path="${WP_PATH}"`
  echo "- Nombre:              ${WP_SITE_NAME}"
  WP_SITE_URL=`wp option get siteurl --path="${WP_PATH}"`
  echo "- URL:                 ${WP_SITE_URL}"
  WP_VERSION=`echo "$WP_D" | awk -F, 'NR { print $2 }'`
  echo "- Versión WP:          ${WP_VERSION}"
  WP_VERSION_UPD=`wp core check-update --path="${WP_PATH}" --format=csv | awk FNR-1 | awk -F, 'NR { print $1 }'`
  if [ $WP_VERSION_UPD ]
  then
    echo "- Actualización:       ${WP_VERSION_UPD}"
  fi
  echo ""
  echo "Themes"
  echo ""
  WP_THEMES=`wp theme list --fields=name,update,version,update_version --format=csv --path="${WP_PATH}" | awk FNR-1`
  WP_TOTAL_THEMES=`echo "$WP_THEMES" | wc -l`
  echo "- Temas:               ${WP_TOTAL_THEMES} temas".
  for WP_T in $WP_THEMES
  do
    WP_THEME_UPD=`echo "${WP_T}" | awk -F, 'NR { print $2 }'`
    if [ $WP_THEME_UPD == "available" ]
    then
      WP_THEME_NAME=`echo "${WP_T}" | awk -F, 'NR { print $1 }'`
      WP_THEME_ACT=`echo "${WP_T}" | awk -F, 'NR { print $3 }'`
      WP_THEME_NEW=`echo "${WP_T}" | awk -F, 'NR { print $4 }'`
      echo "- Tema actualizable:   ${WP_THEME_NAME} ${WP_THEME_ACT} -> ${WP_THEME_NEW}"
    fi
  done
  echo ""
  echo "Plugins"
  echo ""
  WP_PLUGINS=`wp plugin list --fields=name,update,version,update_version --format=csv --path="${WP_PATH}" | awk FNR-1`
  WP_TOTAL_PLUGINS=`echo "$WP_PLUGINS" | wc -l`
  echo "- Plugins:             ${WP_TOTAL_PLUGINS} plugins".
  for WP_P in $WP_PLUGINS
  do
    WP_PLUGIN_UPD=`echo "${WP_P}" | awk -F, 'NR { print $2 }'`
    if [ $WP_PLUGIN_UPD == "available" ]
    then
      WP_PLUGIN_NAME=`echo "${WP_P}" | awk -F, 'NR { print $1 }'`
      WP_PLUGIN_ACT=`echo "${WP_P}" | awk -F, 'NR { print $3 }'`
      WP_PLUGIN_NEW=`echo "${WP_P}" | awk -F, 'NR { print $4 }'`
      echo "- Plugin actualizable: ${WP_PLUGIN_NAME} ${WP_PLUGIN_ACT} -> ${WP_PLUGIN_NEW}"
    fi
  done
  echo "********************************************************************************"
done
echo ""
echo " -- FIN --"
echo ""
echo ""Este código ha sido creado por:

Javier Casares
Sitio personal: Javier Casares
Sitio profesional: WPSysAdmin