En mi trabajo cada que me toca trabajar con proveedores y es hora de publicar sus archivos en mis servidores linux me encuentro con que todos sus archivos y carpetas se encuentran con permisos de dios 777 y tengo que cambiar todos por algo mas respetuoso hablando de paginas expuestas a Internet.

Pues bien para no hacer todo esto archivo por archivo y carpeta por carpeta podemos colocar un comando para cambiar los permisos de todas las carpetas:

find . -type d -exec chmod 711 {} \;

y para cambiar los permisos de todos los archivos reemplazamos la d por f quedando

find . -type f -exec chmod 644 {} \;

y si deseamos cambiar los permisos solo de algunos archivos con cierta extensión por ejemplo todos los html seria algo así

find . -name \*\html -exec chmod 644 {} \;

Crear CRON

Publicado: julio 10, 2012 en CRON

Por si alguien anda perdido en como generar sus propios cron en linux les comparto una liga con la cual es cuestión de clic xD

http://www.corntab.com/pages/crontab-gui

Respaldos de Bases MySQL desde CRON

Publicado: julio 10, 2012 en CRON, SH

Bueno para empezar con mi primer post, pondré un script mediante el cual hago respaldos de todas las bases de datos de MySQL y las empaqueto en un tar.gz para después enviarlas por FTP a otro servidor y así tener siempre un respaldos de estas bases, y poder actuar ante alguna contingencia, de esta forma estaremos preparados para cualquier caída inesperada de nuestro servidor productivo, todo esto lo realizo mediante un cron que se ejecuta todos los días por la madrugada y me envía por correo todos los sucesos, espero le sirva a alguien.

#!/bin/bash

# Ruta en la que se guarda el log de la operacion de backup.
logfile=PATH/mysql.log
backup_dir=PATH/database

# Creamos un nuevo log del proceso de backup
rm -rf $logfile
touch $logfile

# Mediante esta instruccion, generamos un nombre de fichero con el dia y la hora del proceso de backup.
timeslot=`date +%Y%m%d_%H%M`

cd $backup_dir

# Iteramos a traves de la lista de bases de datos a la que el usuario tiene acceso.
echo “Empieza proceso de Resapaldo a $timeslot horas” >> $logfile

# Se borra los respaldos anteriores porque ya debieron ser tomados por produccion
echo “–>Se borran los respaldos existentes porque ya debieron ser tomados por produccion” >> $logfile

if rm *.tar.bz2; then
echo “–>Se borraron exitosamente los respaldos anteriores” >> $logfile
else
echo “–>Ocurrio un error al borrar los respaldos anteriore” >> $logfile
fi

for BBDD in $( mysql -uUSER -pPASSWD -Bse ‘show databases’); do
# Volcamos la base de datos en un fichero temporal
mysqldump -uUSER -pPASSWD $BBDD | gzip > $backup_dir/$BBDD’_'$timeslot.sql.gz
# El nombre del fichero resultante contiene el nombre de la base de datos y la fecha de la copia.
# De esta manera, cuando sea necesaria su restauracion sera mas sencillo de localizar.

echo “–> Backup completo en la base de datos: $BBDD ($BBDD’_'$timeslot.sql.gz)” >> $logfile

# Borramos el fichero temporal
done

#SE EMPAQUETA EN UN SOLO ARCHIVO TODAS LAS BASE DE DATOS
echo “–> Agrupando las base de datos” >> $logfile
if tar -c *.gz | bzip2 > db_$timeslot.tar.bz2; then
echo “–> Bases de datos agrupadas exitosamente” >> $logfile
else
echo “–> Error al agrupar las base de datos” >> $logfile
fi

if rm -f *.gz; then
echo “–> Se eliminaron exitosamente las bases independientes” >> $logfile
else
echo “–> Ocurrio un problema al eliminar las base de datos independientes” >> $logfile
fi

echo “Conectando y autentificando con el servidor de FTP” >> $logfile

HOST=IP
USER=USERFTP
PASSWD=PASSWDFTP
cd $backup_dir

echo “Enviando back-up de la BD” >> $logfile

ftp -n $HOST << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
put db_$timeslot.tar.bz2
quit
END_SCRIPT
echo “Archivo enviado correctamente” >> $logfile

echo “Eliminamos el archivo local” >> $logfile

echo “Archivo eliminado correctamente” >> $logfile

timeslotEnd=`date +%Y%m%d_%H%M`

echo “Termina proceso de Resapaldo a $timeslotEnd horas” >> $logfile

cat $logfile | mail -s “LogRespaldo” TUMAIL

My Tux

Publicado: julio 10, 2012 en Personal

Este blog lo he creado con la intención de ir colocando todas mis anécdotas vividas y por vivir en este mundo tan maravalliso que me ha envuelto en mi vida laboral y personal que es LINUX. Espero además de ayudarme a mi mismo cuando se me olviden mis cosas ayudar a algún cibertnauta.

 

Nota: Perdonar si el nombre de blog es mytuxt con T al final, ya se que no es el nombre de la mascota linux pero ya me habían ganado el nombre de ese blog.