¿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 version
Para 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
fi
Buscaremos 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}"
fi
De 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
done
Y 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
done
Y 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