Tip rápido para ver todos los emails de la cola de Postfix
qshape deferred | head
Para mostrar que emails están en cola, osea, aun no se han enviado:
mailq
Para borrar un email de la cola:
postsuper -d queue_id
Para borrar todos esos emails de la cola:
postsuper -d ALL
Mas comandos:
postsuper -d numero (eliminar el mensaje)
postsuper -d ALL (eliminar todos los mensajes)
postsuper -r Number (Encolar de nuevo el mensaje)
postsuper -r ALL (Encolar de nuevo todos los mensajes)
postqueue -p (Mostrar la cola de correo por pantalla)
postqueue -f (Hacer un flush de la cola de correo, intentar enviar todos los correos)
Tal vez os haya pasado, que tras copiar contenidos desde otro servidor Plesk, sobretodo cuando se hace con el comando rsync, se desajustan los nombres de usuario y grupo que tenian originalmente. Aqui dejamos un script en bash totalmente operativo que corrige todos estos permisos. Recordar esto es solo script en bash para Plesk, funciona en cualquiera de sus versiones de Plesk en cualquier distribucion Linux, no tiene ninguna funcionalidad en otros entornos
#!/bin/bash
# Corrige los permisos de los archivos y directorios de los dominios
cat /etc/passwd |egrep vhos > /tmp/$$
wc=`wc -l /tmp/$$ |awk ‘{ print $1 }’ `
for i in `seq 1 $wc`
do
linea=`head -$i /tmp/$$ |tail -1`
user=`echo $linea |awk -F: ‘{ print $1}’`
home=`echo $linea |awk -F: ‘{ print $6}’`
echo “$user – $home”
#corrigiendo el home
chown root.root $home
chmod 755 $home
#corrigiendo el httpdocs y demas principales
for dir in httpdocs httpsdocs cgi-bin anon_ftp
do
if [ -d $home/$dir ];then
#el directorio
chown $user.psaserv $home/$dir
chmod 750 $home/$dir
#el contenido
chown $user.psacln $home/$dir/* -R
chmod 777 $home/$dir/* -R
fi
done
for dir in statistics subdomains web_users
do
if [ -d $home/$dir ];then
chown root.psaserv $home/$dir
chmod 755 $home/$dir
if [ -d $home/$dir/httpsdocs ];then
chown $user.psaserv $home/$dir/httpsdocs
chmod 750 $home/$dir/httpsdocs
chown $user.psacln $home/$dir/httpsdocs -R
chmod 777 $home/$dir/httpsdocs -R
fi
fi
done
done
Un script muy sencillo que nos permitira si queremos utilizar traducción instantaneo en nuestros pequeños programas de bash. Basicamente se hace uso de Google Translate Ajax API y de “curl” para hacer una petición HTTP con los parametros adecuados y se analiza la respuesta recibida, los parametros son el idioma “origen”, el idioma “destino” y el string que queremos traducir.
#!/usr/bin/env bash
# gtranslate.sh
# Translate using Google Translate Ajax API:
# http://ajax.googleapis.com/ajax/services/language/translate?v=1.0 \
# &langpair=en|es&q=hello+world
# More Info: http://code.google.com/apis/ajaxlanguage/documentation/
# ksaver (at identi.ca), March 2010.
# Licence: Public Domain Code.
progname=$(basename $0)
if [ -z "$3" ]
then
echo -e "Usage: $progname lang1 lang2 'string of words to translate...'"
echo -e "Example: $progname en es 'Hello World!'\n"
exit
fi
FROM="$1"
TO="$2"
# Google Translate Ajax API Url
TRANSURL='http://ajax.googleapis.com/ajax/services/language/translate?v=1.0'
LANGPAIR="$FROM|$TO"
shift 2
# Parse string to translate, change ' ' to '+'
# STRING: String to translate.
STRING="$@"
PSTRING=$(echo "$STRING" |tr ' ' '+')
# Get translation
RESPONSE=$(/usr/bin/env curl -s -A Mozilla \
$TRANSURL'&langpair='$LANGPAIR'&q='$PSTRING)
echo -n "$progname> "
# Parse and clean response, to show only translation.
echo "$RESPONSE" |cut -d ':' -f 3 |cut -d '}' -f 1
Aqui os dejo 15 usos prácticos del comando de MySQL tan usado por los syadmins, mysqladmin
1. ¿Cómo cambiar la contraseña del usuario root en MySQL
# mysqladmin -u root -pxxx password ‘yyy’ # mysql -u root -pyyy Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 2 Server version: 5.0.67 MySQL Community Server (GPL) Type ‘help;’ or ‘h’ for help. Type ‘c’ to clear the buffer.
2. ¿Cómo chequear si el servidor MySQL está corriendo?
# mysqladmin -u root -p ping Enter password: mysqld is alive
# mysqladmin -u root -pxxx version mysqladmin Ver 8.42 Distrib 5.0.67 on i686 Copyright (C) 2000-2006 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 5.0.67 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 100 days 0 hours 0 min 0 sec Threads: 1 Questions: 241986 Slow queries: 0 Opens: 11097 Flush tables: 2 Open tables: 32 Queries per second avg: 1.23
# mysqladmin -u root -pxxx drop basedeprueba Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed.Do you really want to drop the ‘basedeprueba’ database [y/N] y Database “basedeprueba” dropped
10. ¿Cómo recargar/refrescar los privilegios de la tabla de permisos?
# mysqladmin -u root -pxxx reload;
El comando refresh hará un flush de todas las tablas y cerrará/abrirá los archivos de log.
# mysqladmin -u root -pxxx refresh;
11. ¿Cuál es el método seguro de detener el servidor MySQL?
13. ¿Cómo matar un proceso pendiente de un cliente MySQL? Previo a este comando es necesario identificar el thread a eliminar ejecutando el comando processlist de mysqladmin.
# mysqladmin -u root -pxxx kill 20
14. ¿Cómo iniciar y parar la replicación en un servidor esclavo en MySQL ?
15. ¿Cómo combinar múltiples comandos de mysqladmin juntos?
# mysqladmin -u root -pxxx process status version +—-+——+———–+—-+———+——+——-+——————+ | Id | User | Host | db | Command | Time | State | Info | +—-+——+———–+—-+———+——+——-+——————+ | 43 | root | localhost | | Query | 0 | | show processlist | +—-+——+———–+—-+———+——+——-+——————+Uptime: 3135 Threads: 1 Questions: 50 Slow queries: 1 Opens: 10 Flush tables: 2 Open tables: 0 Queries per second avg: 0.5 mysqladmin Ver 8.42 Distrib 5.0.67 on i686 Copyright (C) 2000-2006 MySQL AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license
Server version 5.0.67 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 52 min 15 sec
En algunas ocasiones necesitamos acceder a algún servicio o aplicación que usa un puerto diferente al que por defecto tenemos permitido.
Imaginemos que estamos usando en nuestro trabajo nuestro portatil con Ubuntu y queremos actualizar repositorios o usar facebook, messenguer, etc … Estos servicios usan un puerto determinado que en principio si no podemos usar directamente se debe a la existencia en la red de un firewall que esta capando un puerto determiando.
Pues bien utilizando SSH , nos enseñana como podremos crear un tunel sobre dicho servidor externo y evitar el firewall, usando nuestra máquina como servidor local y redireccionando todas las salidas sobre el puerto especificado, es bastante sencillo y nos saltaremos el cortafuegos gustosamente:
El ejemplo que vamos a utilizar es el saltarnos un firewall, en nuestra red que capa el puerto que utiliza ubuntu para actualizar unos repositorios en un host concreeto.
Imaginemos que deseaba agregar el repositorio UbuntuGis para instalar algunos paquetes del mismo (Grass y Quantum GIS entre otros), pero al añadirlo:
sudo add-apt-repository ppa:ubuntugis/ppa
Si hay un firewal en la red que capa dicho puerto obtendriamos el siguiente error:: Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyserver keyserver.ubuntu.com –recv 6B827C12C2D425E227EDCA75089EBE08314DF160 gpg: requesting key 314DF160 from hkp server keyserver.ubuntu.com gpgkeys: HTTP fetch error 7: couldn’t connect to host gpg: no valid OpenPGP data found. gpg: Total number processed: 0
Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –secret-keyring /etc/apt/secring.gpg –trustdb-name /etc/apt/trustdb.gpg –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyserver keyserver.ubuntu.com –recv 6B827C12C2D425E227EDCA75089EBE08314DF160gpg: requesting key 314DF160 from hkp server keyserver.ubuntu.comgpgkeys: HTTP fetch error 7: couldn’t connect to hostgpg: no valid OpenPGP data found.gpg: Total number processed: 0
* Está capando el puerto 11371, el que usa el servidor de claves en la dirección: keyserver.ubuntu.com
Ahora bien para solucionar esto mediante un tunel con SSH hariamos lo siguiente:
1. Editamos el fichero /etc/hosts (como superusuario), en concreto la siguiente línea: 127.0.0.1 localhost keyserver.ubuntu.com
2. Guardamos y teniendo en cuenta que disponemos un servidor externo con un servidor SSH y sin restricciones en cuanto a firewall se refiere, lanzamos SSH con un tunel sobre el puerto 11371 local y redireccionando la salida sobre la dirección especificada (keyserver.ubuntu.com) y el mismo puerto. Tan sencillo como la siguiente línea (en este caso estoy usando el servidor de mi universidad, y nombre_usuario el nombre de mi usuario en el servidor ts.uco.es):