====== Salvar Log Servidores Linux en una carpeta compartida ====== ===== Introducción ===== Muchos trabajamos para Empresas y cuando llega lo OSRI lo primero que solicita son las trazas de los servidores de un año, a continuación muestro un strip que realice para aliviar ese trabajo y en caso de tener algún problema con el disco duro de mi servidor no perder esa información, además incluí que pasado un año el stript solo me borre el fichero atrasado para no ocupar espacio en mi PC. Sin más les dejo el script. ===== Preparativos ===== Debemos tener en cuenta instalar smbclient y tener una carpeta compartida en la red para salvar la información ===== Instalación ===== apt-get install smbclient ===== Configuración ===== Creamos un fichero llamado **salvas_log.sh** dentro de la carpeta **/home** con el siguiente contenido: #!/bin/bash #creando todas las variables que voy a utilizar dia=$(date +%d) mes=$(date +%m) anno=$(date +%Y) anno_anterior=$[$anno-1] # Este es un detalle para guardar el nombre de las PC en MAYUSCULAS host_lowercase=$(hostname) host_uppercase=$(tr '[a-z]' '[A-Z]' <<< $host_lowercase) #fichero del año anterior fecha='log_'$host_uppercase'_'$anno_anterior'-'$mes'-'$dia'.tar.bz2' #fichero a guardar nombre='log_'$host_uppercase'_'$(date +%F).tar.bz2 #Usuario y contraseña por la que estableces la conexion formato usuario%contraseña conexion='user%pass' #Recurso compartido formato //maquina/recurso recurso='//nombre_pc/Salvas_'$(hostname) #Nos movemos a la carpeta de los Logs cd /var/log/ # creo los archivos con el formato 'syslog.log' y 'message.log' para poderlo guardar, # es que estos 2 ficheros los crea la maquina sin el .log cp -a syslog /var/log/syslog.log cp -a messages /var/log/messages.log #me muevo a la carpeta donde voy a guardar el fichero de las trasas cd /home/salvas/ #encontrar todos los ficheros con extensión '.log' y hacer un archivo bzip. find /var/log -name '*.log' |tar cv --files-from=- | bzip2 > $nombre #conectamos a la carpeta de las salvas #borramos el fichero del año anterior de existir smbclient $recurso -U $conexion -c 'del '$fecha # copio la salva del dia para la maquina smbclient $recurso -U $conexion -c 'put '$nombre #borramos la salva del servidor para no ocupar espacio rm $nombre #me muevo a la carpeta /var/log/ cd /var/log/ # borro los ficheros 'syslog.log' y 'messages.log' creado para no tenerlo repetido rm -f syslog.log rm -f messages.log exit 0 acto seguido le damos permisos de ejecución para hacerlo una tarea programada dentro del cron. chmod 777 salvas.log ===== Comprobación ===== Para comprobar si todo esta como queremos basta con ejecutar el script y en la carpeta compartida tendremos un fichero guardado con el nombre de la maquina y la fecha de la salva, por ejemplo si la maquina se llama jabber tendrán algo como: **log_JABBER_2015-05-26.tar.bz2** ===== Notas ===== Solo nos quedaría agregar en el cronttab la siguiente linea para que todos los dias a las 11:58 pm nos haga la salva. 58 23 * * * /home/salvas_log.sh