Si por usas en alguna de las webs de un servidor cloudflare puede ser interesante añadir sus ips a la lista de ips permitidas, para eso cloudflare nos proporciona una página donde podemos ver sus rangos de ips.

Puedes usar este pequeño script para añadir esas ips a la lista blanca de csf:

for ip in $(curl -s https://www.cloudflare.com/ips-v4); do /usr/sbin/csf -a $ip "IP de CloudFlare"; done 
for ip in $(curl -s https://www.cloudflare.com/ips-v6); do /usr/sbin/csf -a $ip "IP de CloudFlare"; done

Este mini script funciona con plesk 9 en adelante. Yo lo utilizo para luego poder importar los emails en otro servidor con virtualmin con la ventaja de que mantiene las contraseñas de los emails.

for d in $(mysql -uadmin -p`cat /etc/psa/.psa.shadow` psa -Ns -e "select displayName from domains where domains.status=0 and parentDomainId=0;"); do echo $d; /usr/local/psa/bin/pleskbackup domains-name $d  --only-mail --output-file=/var/tmp/$d.backup ;done

Este es un truco rápido para ejecutar un comando en el momento en que te conectas por ssh a un servidor. Sólo tienes que editar el fichero ~/.bashrc de tu usuario o /etc/bash.bashrc si lo quieres hacer para todos los usuarios del servidor y añadir el código siguiente sustituyendo el echo que he puesto por el comando o comandos que quieras ejecutar.

if [[ -n $SSH_CONNECTION ]] ; then
echo "Bienvenido guapetón"
fi

En servidores donde hay un gran trasiego de imágenes puede ser muy útil el instalar un sistema de compresión y optimización de imágenes en batch desde el servidor.
Para hacer la compresión de las imágenes vamos a utilizar jpegoptim para las imágenes jpeg y optipng para los png, otras opciones válidas para los png son pngcrush advancecomp.
La premisa principal del scrip es comprimir lo máximo posible sin pérdida de calidad.

Lo primero es instalar las aplicaciones:

apt-get install jpegoptim optipng

El script que utilizo para hacer la compresión es este, tened en cuenta que uso un find sin límite superior por lo que comprimirá todas las imágenes de la ruta indicada y de todas las rutas que estén por encima de ella.

p.e.:

comprimir_imagenes.sh /opt/imagenes

comprimirá las imágenes de /opt/imagenes y de /opt/imagenes/a, /opt/imagenes/a/1, /opt/imagenes/a/1/2, etc.

#!/bin/bash
echo " "
if [ ! -z "$1" ]
then
	INIT_DIR=$1
	find $INIT_DIR -type f -name "*.jpg" | xargs -I ARG jpegoptim -p -f ARG
	find $INIT_DIR -type f -name "*.jpeg" | xargs -I ARG jpegoptim -p -f ARG
        find $INIT_DIR -type f -name "*.png" | xargs -I ARG optipng -preserve -o7 ARG
else
	echo ""
        echo "Hay que indicar el directorio a partir del cual se quiere comprimir"
        echo " "
        echo "Formato:"
        echo "./optimizar_imagenes.sh /var/directorio/"
fi
echo " "

Tened en cuenta que las imágenes comprimidas tendrán el usuario y grupo del usuario que ejecute el script.

Este scrip en bash permite cambiar todas las claves de akismet de los blogs de un servidor. Simplemente busca todos los wp-config.php, saca los datos de acceso al mysql, comprueba si la clave que tienen metida es diferente de la nueva y si es así la cambia. Funciona perfectamente con wordpress multisite.

Acordaros de cambiar la clave y la ruta por la de vuestros servidores.

#!/bin/bash
 
CLAVE_AKISMET='mi_clave_akismet'
RUTA_WEB='/var/www/html/'
 
for WPCONFIG in $(find $RUTA_WEB -type f -name "wp-config.php")
        do
                DBNAME=$(grep "DB_NAME" $WPCONFIG | awk '{split($0,a,","); print a[2]}' | awk '{split($0,a,";"); print a[1]}' | sed -e 's/)//g' | sed -e "s/'//g" | tr -d " ")
                DBUSER=$(grep "DB_USER" $WPCONFIG | awk '{split($0,a,","); print a[2]}' | awk '{split($0,a,";"); print a[1]}' | sed -e 's/)//g' | sed -e "s/'//g" | tr -d " ")
                DBPASS=$(grep "DB_PASSWORD" $WPCONFIG | awk '{split($0,a,","); print a[2]}' | awk '{split($0,a,";"); print a[1]}' | sed -e 's/)//g' | sed -e "s/'//g" | tr -d " ")
                DBHOST=$(grep "DB_HOST" $WPCONFIG | awk '{split($0,a,","); print a[2]}' | awk '{split($0,a,";"); print a[1]}' | sed -e 's/)//g' | sed -e "s/'//g" | tr -d " ")
 
 
                if [ $(mysql -u $DBUSER -p$DBPASS -h $DBHOST $DBNAME -Ns -e "show tables;" | grep -c _options) -gt 0 ];
                then
 
                        for TABLA_OPTIONS in $(mysql -u $DBUSER -p$DBPASS  -h $DBHOST $DBNAME -Ns -e "show tables;" | grep "_options")
                        do
                                clave=$(echo "select option_value from "$TABLA_OPTIONS" where option_name='wordpress_api_key';" | mysql -u $DBUSER -p$DBPASS  -h $DBHOST $DBNAME -Ns)
                                if [ "$clave" != "$CLAVE_AKISMET" ];
                                then
                                        echo "Actualizando TABLA_OPTIONS:" $TABLA_OPTIONS
                                        echo "update "$TABLA_OPTIONS" set option_value='"$CLAVE_AKISMET"' where option_name='wordpress_api_key';" | mysql -u $DBUSER -p$DBPASS -h $DBHOST $DBNAME  -Ns
                                fi;
                        done
                fi;
        done

A veces es interesante acceder a algún servidor por ssh sin tener que introducir las claves. La forma más sencilla de hacerlo es:
1.- Comprueba si tienes ya creadas tu par de claves. Vete a /home/tu_usuario/.ssh/ y comprueba si existen los ficheros id_rsa y id_rsa.pub . Si no existen genéralos con

ssh-keygen

2.- Una vez que ya tienes tu par de claves copialas al host destino con

ssh-copy-id usuario@host_destino

Ahora ya podrás conectarte directamente a ese host sin necesidad de introducir la clave. Ten en cuenta que si hay un problema de seguridad en tu equipo estarás comprometiendo todos los equipos a los que te puedes conectar sin clave, úsalo con mucho cuidado.

Una forma original de evitar el spam, popups y un montón de basura sin cargar nada el equipo es hacer que los hosts que lo sirven apunten al localhost. En someonewhocares.org he encontrado un listado de mas de 10000 spammers ya preparados para meter en el fichero host.

Se puede guardar en lugar de tu fichero hosts o añadir al que ya tienes. En mi caso lo tengo que añadir por que lo utilizo para mas cosas, así que he preparado este pequeño script que se puede añadir al cron y así actualizar periódicamente.

Este es el script:

#!/bin/bash
if [ ! -f /etc/hosts.original  ]
then
        #hacemos copia del fichero original si no existe
        /bin/cp /etc/hosts /etc/hosts.original
else
        #ya tenemos una copia del fichero orginal así que la restauramos
        /bin/cp /etc/hosts.original /etc/hosts
fi
 
#Descargamos el fichero host de http://someonewhocares.org/hosts/ ,filtramos las entradas que nos interesan y lo añadimos al nuestro fichero host
curl --silent http://someonewhocares.org/hosts/hosts | grep '^127.0.0.1' >> /etc/hosts

A veces es necesario comprobar si el servidor que acabamos de instalar está enviando las páginas comprimidas con gzip si el navegador se lo solicita. La forma más sencilla es preguntándoselo con curl:

curl -I -H 'Accept-Encoding: gzip,deflate' https://rastreador.com.es

La opción -I hace que sólo nos muestre las cabeceras (petición HEAD)
La opción -H ‘Accept-Encoding: gzip,deflate’ envía la cabecera que le indica al servidor que queremos la página comprimida con gzip

Si entre las cabeceras que nos llegan aparece:
Content-Encoding: gzip
o
Content-Encoding: deflate

Significa que la compresión con gzip está funcionando.