Este script shell lo podeis usar para actualizar todos los registros DNS en Plesk a la vez porque el script sobrescribe los archivos de configuración de la zona DNS.
Aqui os dejo el script:
Plesk, seguridad, Proxmox, cloud, Manuales, tips, Servidores, scripts bash, sysadmin, Linux, Centos, Ubuntu, MySQL,
Este script shell lo podeis usar para actualizar todos los registros DNS en Plesk a la vez porque el script sobrescribe los archivos de configuración de la zona DNS.
Aqui os dejo el script:
Aunque hay herramientas enfocadas para el seguimiento procesos en MySQL, algunas de pago, otras gratis, pues para mi es mas fácil crear un pequeño script en bash que las mostrara estilo «top».
#!/bin/bash
for i in `seq 1 100000`;
do
tput clear
date
echo "____________________________________________________________________________________"
mysqladmin -uUSUARIO --port=3306 --host=localhost -pPASSWORD processlist | awk '{ if ($12 > 0) print $0}' | grep -v binlog | cut -d \| -f2,5,6,7,8,9
echo " "
uptime
mysqladmin -uUSUARIO --port=3306 --host=localhost -pPASSWORD processlist | wc -l
sleep 5
done
Rapido y sencillo, suficiente para ver los queries que se quedan atascados en MySQL.
La dichosa y jodida marca de agua aparece en la esquina inferior derecha. A mi en particular me ha aparecido por tener una tarjeta gráfica ATI. El script me lo he encontrado en askubuntu.com porque desde la versión beta de Ubuntu 13 aparece dicha marca de agua para varias tarjetas gráficas de la marca AMD (ATI)
Abrimos cualquier gedit o cualquier otro editor de textos y agregamos lo siquiente:
#!/bin/sh
DRIVER=/usr/lib/fglrx/xorg/modules/drivers/fglrx_drv.so
for x in $(objdump -d $DRIVER|awk '/call/&&/EnableLogo/{print "\\x"$2"\\x"$3"\\x"$4"\\x"$5"\\x"$6}'); do
sed -i "s/$x/\x90\x90\x90\x90\x90/g" $DRIVER
done
Lo guardamos en escritorio (o donde querais) con cualquier nombre y al final con la extensión .sh
chmod +x Desktop/fix_amd.sh
Lo ejecutamos
sudo Desktop./fix_amd.sh
Cerramos sesión e iniciamos nuevamente. La marca de agua habrá desaparecido para siempre. Voilá 😀
Requisito para una urgencia en una empresa fue crear de urgencia unos full backups y un backup incremental diario de un repositorio. Como siempre estos requerimientos se requieren para ayer y son para salvar cabezas cuando las papas queman.
Debido al gran volumen de datos, como estrategia de backups se decidió realizar un Full backup mensual y un backup incremental diario.
A tal fin, se escribieron dos scripts, el primero de ellos, que dado un directorio crea un archivo tar comprimido del mismo. Y el segundo, el que se ejecuta diariamente, que se encarga de verificar la fecha de modificación del último backup full del directorio y a partir de la misma crea un tar comprimido con los cambios desde entonces.
Nada de otro mundo, dos scripts en bash sencillos, pero que se dejan a vuestra disposición por si las moscas.
Backup incremental:
#!/bin/sh
TAR=$(which tar)
TEE=$(which tee)
ARGS=2
if [ $# -ne $ARGS ]
then
echo “Usage: “$0” file dir”
echo ” file: backup file name”
echo ” dir: path to backup”
exit
fi
APP=$0 #app name
FILE=$1“_incremental.tgz” #backup file
FILE_FULL=$1“_full.tgz” #backup full
FILE_OLD=$FILE“~” #file backuped before remove
DIR=$2 #path
LOG_DIR=/var/log
LOG_FILE=$LOG_DIR“/”${APP##*\/}“.log” #remuevo de APP lo que este antes de la ultima /
TODAY=`date “+%Y-%m-%d %a”`
echo $TODAY” *** Backup incremental ***” | $TEE -a $LOG_FILE
if [ ! -d $DIR ]
then
echo “ERROR: path “$DIR” not exist” | $TEE -a $LOG_FILE
exit
fi
# Reviso si existe el backup full
if [ ! -f $FILE_FULL ];
then
echo “ERROR: full backup “$FILE_FULL” not exist!” | $TEE -a $LOG_FILE
exit
fi
#Realizo backup del backup
echo “Rotating files…” | $TEE $LOG_FILE
if [ -f $FILE ];
then
#cp -v $FILE $FILE_OLD | $TEE $LOG_FILE
rm -v $FILE | $TEE $LOG_FILE
fi
#Realizo el backup
DATE_FULL=“`date \”+%Y-%m-%d %H:%M\” -r “$FILE_FULL“`”
echo “Full backupe created: “$DATE_FULL | $TEE $LOG_FILE
echo “Making backup…” | $TEE $LOG_FILE
$TAR -chzf $FILE –newer-mtime=“$DATE_FULL” $DIR | $TEE -a $LOG_FILE
if [ $? == 0 ]
then
echo “Backup successfull!”
else
echo “ERROR: error making backup <img alt=":-(" src="http://luauf.com/wp-includes/images/smilies/icon_sad.gif" /> “
fi
Full backup:
#!/bin/bash
TAR=$(which tar)
TEE=$(which tee)
ARGS=2
if [ $# -ne $ARGS ]
then
echo “Usage: “$0” file dir”
echo ” file: backup file name”
echo ” dir: path to backup”
exit
fi
APP=$0 #app name
FILE=$1“_full.tgz” #backup file
FILE_OLD=$FILE“~” #file backuped before remove
DIR=$2 #path
LOG_DIR=/var/log
LOG_FILE=$LOG_DIR“/”${APP##*\/}“.log” #remuevo de APP lo que este antes de la ultima /
TODAY=`date “+%Y-%m-%d %a”`
echo $TODAY” *** Backup full *** “ | $TEE -a $LOG_FILE
if [ ! -d $DIR ]
then
echo “ERROR: path “$DIR” not exist” | $TEE -a $LOG_FILE
exit
fi
#Realizo backup del backup
echo “Rotating files…” | $TEE -a $LOG_FILE
if [ -f $FILE ];
then
#cp -v $FILE $FILE_OLD | $TEE -a $LOG_FILE
rm -v $FILE | $TEE -a $LOG_FILE
fi
echo “Making backup…” | $TEE -a $LOG_FILE
#Realizo el backup
$TAR -chzf $FILE $DIR | $TEE -a $LOG_FILE
if [ $? == 0 ]
then
echo “Backup successfull!”
else
echo “ERROR: error making backup <img alt=":-(" src="http://luauf.com/wp-includes/images/smilies/icon_sad.gif" /> “
fi
Con la necesidad de hacer un script en bash, me ví con la obligación de hacer una conexion ssh y no queria que me pidiera contraseña cada vez que lo ejecutara.
Tenia la opcion por claves publicas y privada pero creo que iba a perder mucho tiempo, asi que opte por la siguiente:
Nos bajamos el paquete llamado sshpass de sourceproject
wget http://heanet.dl.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz tar xvf sshpass-1.05.tar.gz cd sshpass-1.05 ./configure make sudo make install
Ahora una vez instalado sshpass en nuestro sistema o servidor, la sentencia para conectarnos a ssh es la siguiente:
sshpass -p 'passwd' ssh root@192.168.1.54