Back in Time, copias de seguridad automáticas y periódicas en Gnome

Back in Time es una aplicación para crear copias de seguridad automáticamente integrada en el escritorio Gnome. Aunque lejos de intentar hacer frente a la espectacular interfaz y aspecto visual del Time Machine de Mac, sí implementa su funcionalidad más importante: se pueden configurar backups periódicos para después poder elegir a qué momento exacto regresar. Él solo va creando copias de seguridad (snapshots) automática y periódicamente siempre que algo haya cambiado en los directorios elegidos, de modo que después el usuario puede elegir qué copia restaurar dependiendo del momento en el que fue respaldada.

back in time

La ventana principal está distribuida de forma que en la columna de la izquierda se ve la línea de tiempo, con todas las instantáneas que se han ido tomando y su fecha. En la del centro se puede acceder a los marcadores del navegador de archivos y directorios del sistema, y en la derecha es donde realmente se navega por los archivos.

La configuración del programa permite seleccionar el directorio donde guardar los snapshots, qué directorios se quieren respaldar y qué tipo de ficheros se deben excluir de la copia de seguridad utilizando patrones de los nombres. Por ejemplo, si no se quieren respaldar los ficheros de seguridad que crea el editor de texto Gedit, sino sólo los ficheros originales, habría que añadir un patrón de exclusión *~, ya que es así como el editor los renombra siempre.

También en la ventana de preferencias se puede configurar cuándo debe Back in Time comprobar automáticamente si debe realizar una nueva copia de seguridad (manualmente, cada 5 minutos, cada día, semana, mes…). Además, tiene dos opciones más que pueden ser muy útiles: eliminar los backups que sean viejos o si el espacio en el disco empieza a ser escaso.

Link: Back in Time

Técnicas de Programación de la Shell de Linux para Administradores

Técnicas de Programación de la Shell de Linux para Administradores

Realizado por
PEDRO LOPEZ SOTO
Dirigido por
FRANCISCO R. VILLATORO MACHUCA y LAWRENCE MANDOW ANDALUZ

DEPARTAMENTO DE LENGUAJES Y CIENCIAS DE LA COMPUTACIÓN
UNIVERSIDAD DE MÁLAGA
MÁLAGA, NOVIEMBRE 2005

Índice de Contenidos
Capítulo 1. Introducción…………………………………………………………………………………………………………….1
1.1. Objetivos del Proyecto ……………………………………………………………………………………………………..1
1.2. Contenidos de la Memoria…………………………………………………………………………………………………3
Capítulo 2. Estudio Histórico y Práctico de la Evolución de las Shells ……………………………………………..5
2.1. UNIX. Un Comienzo………………………………………………………………………………………………………..5
2.2. Shell. Una Evolución………………………………………………………………………………………………………10
2.2.1 Shell Bourne. El Gran ‘Daddy’…………………………………………………………………………………..12
2.2.2 C Shell. El Valor de ser Diferente ……………………………………………………………………………..13
2.2.3 Shell Korn. El Retorno a las Tradiciones ……………………………………………………………………14
2.2.4 Shell POSIX. Adaptándose al Estándar………………………………………………………………………16
2.2.5 Shell Bash. En Busca de la Libertad…………………………………………………………………………..17
2.3. Conclusiones ………………………………………………………………………………………………………………..19
Capítulo 3. Comparativa Funcional de las Shells de Unix……………………………………………………………..21
3.1. Criterios Técnicos………………………………………………………………………………………………………….21
3.1.1 Histórico de Comandos ……………………………………………………………………………………………21
3.1.2 Edición de la Línea de Comandos ……………………………………………………………………………..24
3.1.3 Seguimiento Invisible de Enlaces Simbólicos ……………………………………………………………..25
3.1.4 Completado de Nombres de Ficheros, Comandos, Usuarios, Hosts y Variables ………………26
3.1.5 Facilidades para el uso del Prompt de Usuario…………………………………………………………….30
3.1.6 Evaluación de Expresiones Aritméticas y Lógicas……………………………………………………….33
3.1.7 Manejo de Variables………………………………………………………………………………………………..40
3.1.8 Sentencias de Control de Flujo de la Ejecución …………………………………………………………..47
3.1.9 Redirección de Entrada y Salida. Pipes ………………………………………………………………………50
3.1.10 Funciones………………………………………………………………………………………………………………54
3.1.11 Shells Libres …………………………………………………………………………………………………………..55
3.1.12 Diferencias Entre Shell Posix y Shell Korn…………………………………………………………………56
3.2. Conclusiones ………………………………………………………………………………………………………………..57
Capítulo 4. Técnicas Básicas de la Programación Shell…………………………………………………………………61
4.1. Comenzando a Crear un Script…………………………………………………………………………………………61
4.1.1 Ejecutar un Script ……………………………………………………………………………………………………63
4.1.2 Comentarios…………………………………………………………………………………………………………..66
4.1.3 Uso de Variables en un Script. Arrays. Variables Especiales ………………………………………..66
4.2. Comunicación con un Script ……………………………………………………………………………………………72
4.2.1 Argumentos de un Script ………………………………………………………………………………………….72
4.2.2 Sentencia read………………………………………………………………………………………………………73
4.2.3 Opciones y Argumentos con getopts……………………………………………………………………..74
4.3. Variables. Aritmética, Lógica y Cadenas …………………………………………………………………………..78
4.3.1 Aritmética y Lógica …………………………………………………………………………………………………78
4.3.2 Manejo de Cadenas………………………………………………………………………………………………….78
4.4. Condiciones………………………………………………………………………………………………………………….79
4.4.1 Cortocircuitos …………………………………………………………………………………………………………79
4.4.2 Condicional if……………………………………………………………………………………………………….81
4.4.3 Condicional case…………………………………………………………………………………………………..82
4.5. Bucles ………………………………………………………………………………………………………………………….84
4.5.1 while y until …………………………………………………………………………………………………….84
4.5.2 for………………………………………………………………………………………………………………………85
4.5.3 select………………………………………………………………………………………………………………..87
4.5.4 break y continue………………………………………………………………………………………………89
4.6. Funciones …………………………………………………………………………………………………………………….89
4.6.1 Definición de Funciones…………………………………………………………………………………………..89
4.6.2 Argumentos y Entorno de Funciones …………………………………………………………………………90
4.6.3 Finalización de Funciones ………………………………………………………………………………………..91
4.6.4 Librerías de Funciones …………………………………………………………………………………………….91
4.7. Flujo de Datos. Entrada y Salida ………………………………………………………………………………………92
4.8. Traps y Señales……………………………………………………………………………………………………………..93
Capítulo 5. Expresiones Regulares, sed y awk …………………………………………………………………………..97
5.1. Introducción …………………………………………………………………………………………………………………97
5.2. Expresiones regulares. grep …………………………………………………………………………………………..97
5.3. Comando sed ……………………………………………………………………………………………………………..100
5.3.1 sustituir ……………………………………………………………………………………………………………….101
5.3.2 Borrar………………………………………………………………………………………………………………….103
5.3.3 Imprimir………………………………………………………………………………………………………………104
5.3.4 Leer…………………………………………………………………………………………………………………….105
5.3.5 Escribir ……………………………………………………………………………………………………………….105
5.4. Comando awk ……………………………………………………………………………………………………………..106
5.4.1 Procesamiento de líneas en awk………………………………………………………………………………107
5.4.2 Campos definidos dentro de una línea………………………………………………………………………108
5.4.3 Operadores en los patrones……………………………………………………………………………………..109
5.4.4 Procesamiento pre-entrada y post-entrada…………………………………………………………………109
5.4.5 Impresión de valores con awk. Salida formateada……………………………………………………..110
5.4.6 Variables……………………………………………………………………………………………………………..111
5.4.7 Operadores y funciones ………………………………………………………………………………………….111
5.5. Programas sed y awk…………………………………………………………………………………………………..112
Capítulo 6. Aplicaciones para administración con la Shell Bash …………………………………………………..115
6.1. Análisis del Número de Argumentos de un Script: argumentos.sh ………………………………116
6.2. Bombardeo con Mails a un Servidor de Correo: mailbomb.sh……………………………………….116
6.3. Backups del Sistema en Cdrom: cdbackup.sh……………………………………………………………..117
6.4. Grabación en cd de una Imagen de Cdrom en formato .iso: grabacd.sh………………………….119
6.5. Representación de un Cursor en Pantalla: cursor.sh…………………………………………………….120
6.6. Ejemplo de uso del Script cursor.sh: usacursor.sh……………………………………………………..121
6.7. Escáner de red: escanea_ip.sh ………………………………………………………………………………..121
6.8. Escáner de red: escanea_ip_2.sh…………………………………………………………………………….122
6.9. Backup y Eliminación de Ficheros log: logrotate.sh…………………………………………………123
6.10. Conversión de Nombres de Ficheros a Caracteres Minúsculas: minusculas.sh………….125
6.11. Desglose de un Nombre Completo de directorio o Fichero en sus Componentes: path.sh126
6.12. Difusión de un Correo a Múltiples Usuarios: broadmail.sh ……………………………………..127
6.13. Desglose de un Fichero de Base de Datos en sus Componentes: cortafichero.sh …….128
6.14. Ejecución de un ftp a una Máquina Remota sin Intervención Manual : ftpremoto.sh ….130
6.15. Renombrado de Ficheros de Imágenes en Formato .jpg: renombra.sh ………………………..131
6.16. Gestión de Paquetes de Instalación en Formato .rpm: maneja_rpm.sh………………………..132
6.17. Petición de Usuario y Contraseña Para Scripts: login.sh …………………………………………..137
6.18. Eliminación de Segmentos de Memoria Compartida en el Sistema: rm_shmem.sh…………138
6.19. Selección de la Shell Para una Sesión Interactiva de Trabajo: selecciona_shell.sh..139
6.20. Agenda Personal: agenda.sh ………………………………………………………………………………….141
6.21. Creación de una Cuenta de Usuario: nuevousuario.sh……………………………………………143
6.22. Listado de los Usuarios de un Sistema: usuarios.sh………………………………………………..145
6.23. Ejemplo de Sentencia getopts: opciones.sh ……………………………………………………….146
6.24. Distribución de Ficheros en Múltiples Servidores: copia_array_remoto.sh …………..147
6.25. Kit Para Implantación de Aplicaciones en Servidores en Cluster: clustertoolkit.sh.148
6.26. Conversión de Ficheros en Formato .lj a Postscript y a Formato Pdf: lj-ps-pdf.sh…….150
6.27. Generación de un Informe de Totales: formatea.awk……………………………………………….151
Capítulo 7. Conclusiones ………………………………………………………………………………………………………..153
BIBLIOGRAFíA……………………………………………………………………………………………………………………….155
Apéndice A. Contenidos del CD adjunto ……………………………………………………………………………………….159

Descarga:

Técnicas de Programación de la Shell de Linux para Administradores

Linux Máxima Seguridad (Edicion Especial) E-BooK en PDF

Libro enfocado para aquellos administradores de sistemas, gestores y usuarios de Linux que deseen proteger servidores y estaciones de trabajo Linux contra intrusiones no autoriazadas y otras amenazas externas para la integridad de sus sistemas. Esta guia exclusiva de la seguridad en Linux la ha escrito un “hacker” con años de experiencia y en ella se identifican los agujeros y fallos de seguridad existente y potenciales, ademas de como solucionarlos.

Continuar leyendo «Linux Máxima Seguridad (Edicion Especial) E-BooK en PDF»

Instalar Varnish en CentOS 5 y CentOS 6

Varnish es un acelerador para HTTP que está causando furor en el mundo del hosting y en general en el mundo Linux. Varnish aparece como alternativa al poderoso Nginx, que durante mucho tiempo fue el rey en cuanto a la optimización a nivel de cache, proxy y balanceo de carga para los servicios web. Varnish además de hacer todo lo que hace Nginx con mejor rendimiento, también tiene algunas característiacs destacables, como por ejemplo:

  • Lenguaje propio VLC, que permite al usuario manipular varnish a su gusto.
  • Concebido desde el comiento para utilizarse en sistemas 64 bits
  • Soporte parcial de ESI
  • No necesita reiniciar para tomar los cambios de configuraciones

La forma de funcionar de Varnish es muy sencilla, pero a la vez efectiva:  se guarda la información de cada request en la memoria virtual y el S.O es quien decide qué es guardado y que es paginado al disco duro. Esto es muy útil para que no se cachee información mientras se mueve al disco duro por otras aplicaciones.

varnish

Cada request desde el cliente genera hilos independientes y una vez se llega al límite de hilos, las nuevas conexiones son puestas en cola y recién a medida que se liberan otras, estas nuevas comienzan a despacharse. Sólo si la cola de peticiones pendientes alcanza un gran límite recién serán descartadas.

Un escenario ideal es tener apache, lighttpd o nginx en el puerto 8080 y Varnish en el 80 para actuar como proxy delante del webserver. En fin, ahora que ya tenemos una ideal general de como funciona, vamos a la parte divertida:

Para instalar Varnish vamos a seguir los siguientes pasos:

Si bien este repo es para RHEL/CentOS 5.x, funciona perfecto en la versión CentOS 6.x.

Instalamos el repositorio:

 rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm 

Instalamos Varnish

yum install varnish 

Lo configuramos para iniciar al arranque del sistema:

chkconfig varnish on 

Iniciamos Varnish

service varnish start 

Para comprobar si está funcionando, basta con tipear:

service varnish status

Finalmente, resta configurar el servicio desde dos archivos clave:

/etc/sysconfig/varnish, para configurar el servicio a nivel general

/etc/varnish/default.vlc, para configurar las directivas propias que afectarán a cada sitio web.

 

Más información en la web oficial de Varnish

Error en Qmail con demasiados procesos /var/qmail/bin/relaylock

qmail-logo

Si detectectamos en el servidor Linux con CentOS y notas que tienes muchos procesos del tipo:
/var/qmail/bin/relaylock /var/qmail/bin/qmail-smtpd /var/qmail/bin/smtp_auth /var/qmail/bin/

Es posible que el servidor no resuelva correctamente las DNS de los dominios, por lo cual el sistemas de listas negras tarda mucho en cerrarse y se acumulan los procesos.
Continuar leyendo «Error en Qmail con demasiados procesos /var/qmail/bin/relaylock»