En el código siguiente se expone cómo crear dos columnas de diferente anchura utilizando la etiqueta div. En la columna de la derecha se ubican 3 divs adicionales para ubicar información. En cada uno de estos div podríamos incrustar el código que deseemos, iframes o cualquier otra cosa.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>2 columnas con CSS</title>
<style type="text/css">
<!--
#inicio_ausencias {
float:right;
height:100px;
width:60%;
background-color:#99FF99;
}
#inicio_expulsados {
float:right;
height:100px;
width:60%;
background-color:#99FF99;
}
#inicio_email {
float:right;
height:100px;
width:60%;
background-color:#99FF99;
}
#profesoradoguardia {
float:left;
height:300px;
width:40%;
background-color:#99FFFF;
}
-->
</style>
</head>
<body>
<div id="contenedor3">
<div id="profesoradoguardia">Profesorado de guardia
</div>
<div id="inicio_ausencias">Profesorado ausente hoy...
</div>
<div id="inicio_expulsados">Alumnado y periodos de expulsión...
</div>
<div id="inicio_email">Buzón entrada email guardias...
</div>
</div>
</body>
</html>
viernes, 11 de mayo de 2012
lunes, 7 de mayo de 2012
Copia de seguridad muy básica (tar)
El script que se muestra a continuación utiliza la orden tar para crear una copia de seguridad muy básica de una carpeta del usuario.
#!/bin/bash
#Este script realiza una copia de seguridad de los archivos del home del usuario en una carpeta llamada backup. Se utilizará para programar posteriormente una tarea de cron que lo active cada X tiempo.
clear
echo "COPIA DE SEGURIDAD DE TUS DOCUMENTOS"
echo "************************************"
echo "Vamos a realizar una copia de seguridad de tus documentos $USERNAME"
read -p "pulsa una tecla para comenzar"
if [ -d /home/$USERNAME/backup ]
then
echo "La carpeta de copias de seguridad existe, no se creará"
echo "Comienza la compresión"
cd /home/$USERNAME/backup
tar -czvf backup.tgz /home/$USERNAME/Documentos > /dev/null
if [ $? -eq 0 ]
then
echo "Copia realizada con éxito, listando resultados"
ls -l /home/$USERNAME/backup
read -p "pulsa una tecla"
else
echo "Error al realizar la copia"
exit 1
fi
else
echo "Creando carpeta de copias de seguridad..."
mkdir /home/$USERNAME/backup
if [ -d /home/$USERNAME/backup ]
then
echo "Carpeta creada con éxito"
echo "Comienza la compresión"
cd /home/$USERNAME/backup
tar -czvf backup.tgz /home/$USERNAME/Documentos > /dev/null
if [ $? -eq 0 ]
then
echo "Copia realizada con éxito, listando resultados"
ls -l /home/$USERNAME/backup
read -p ""
else
echo "Error al realizar la copia"
exit 1
fi
else
echo "Error al crear carpeta de copias"
exit 1
fi
fi
#!/bin/bash
#Este script realiza una copia de seguridad de los archivos del home del usuario en una carpeta llamada backup. Se utilizará para programar posteriormente una tarea de cron que lo active cada X tiempo.
clear
echo "COPIA DE SEGURIDAD DE TUS DOCUMENTOS"
echo "************************************"
echo "Vamos a realizar una copia de seguridad de tus documentos $USERNAME"
read -p "pulsa una tecla para comenzar"
if [ -d /home/$USERNAME/backup ]
then
echo "La carpeta de copias de seguridad existe, no se creará"
echo "Comienza la compresión"
cd /home/$USERNAME/backup
tar -czvf backup.tgz /home/$USERNAME/Documentos > /dev/null
if [ $? -eq 0 ]
then
echo "Copia realizada con éxito, listando resultados"
ls -l /home/$USERNAME/backup
read -p "pulsa una tecla"
else
echo "Error al realizar la copia"
exit 1
fi
else
echo "Creando carpeta de copias de seguridad..."
mkdir /home/$USERNAME/backup
if [ -d /home/$USERNAME/backup ]
then
echo "Carpeta creada con éxito"
echo "Comienza la compresión"
cd /home/$USERNAME/backup
tar -czvf backup.tgz /home/$USERNAME/Documentos > /dev/null
if [ $? -eq 0 ]
then
echo "Copia realizada con éxito, listando resultados"
ls -l /home/$USERNAME/backup
read -p ""
else
echo "Error al realizar la copia"
exit 1
fi
else
echo "Error al crear carpeta de copias"
exit 1
fi
fi
miércoles, 11 de abril de 2012
Un menú dentro de otro y uso de funciones
El siguiente código muestra una posible solución (parcialmente completa) a un ejercicio que integra un menú de gestión de carpetas, dentro de otro menú. Ambos, están construidos a través de la sentencia case y cada una de las operaciones del segundo menú se implementan mediante funciones.
Es un script orientativo para practicar con sentencias case, su sintaxis y particularidades relacionadas con el uso de los puntos y coma al final de cada orden, así como de funciones que simplifican en gran medida el trabajo a la hora de utilizar menús.
Nota: la creación, borrado y listado de las carpetas se ha fijado en el home del usuario que en ese momento esté conectado al sistema, por simplificar.
read -p "Introduzca una opción: " -n1 opcion1
case $opcion1 in
a) while [ "$opcion2" != "4" ]
do
clear;
echo "******* MENU CARPETAS *******";
echo "1) Crear carpeta";
echo "2) Borrar carpeta";
echo "3) Listar carpeta";
echo "4) Salir";
echo "***************************** ";
read -p "Introduce una opción: " -n1 opcion2;
case $opcion2 in
1) crear_carpeta;;
2) borrar_carpeta;;
3) listar_carpeta;;
4) ;;
*) echo "Opción no válida";;
esac;
done;;
b)echo "Fin del script";;
esac
done
echo "Gracias por utilizar este programa"
read
exit 0
Es un script orientativo para practicar con sentencias case, su sintaxis y particularidades relacionadas con el uso de los puntos y coma al final de cada orden, así como de funciones que simplifican en gran medida el trabajo a la hora de utilizar menús.
Nota: la creación, borrado y listado de las carpetas se ha fijado en el home del usuario que en ese momento esté conectado al sistema, por simplificar.
#!/bin/bash
function crear_carpeta()
{
clear
echo "CREACIÓN DE CARPETA"
echo
read -p "Introduce el nombre de la carpeta a crear: " carpeta
if [ "$carpeta"="" ]
then
echo "No has introducido una carpeta para crearla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos la creación
echo "El nombre introducido es: " $carpeta
if [ -d /home/$USERNAME/$carpeta ]
then
echo "La carpeta indicada existe, no se creará"
else
mkdir /home/$USERNAME/$carpeta
if [ $? -eq 0 ]
then
echo "Carpeta creada con éxito"
else
echo "Error al crear la carpeta"
fi
fi
fi
read -p "Pulse una tecla para continuar"
}
function borrar_carpeta()
{
clear
echo "BORRADO DE CARPETA"
echo read -p "Introduce la carpeta a borrar: " carpeta2
if [ "$carpeta2"="" ]
then
echo "No has introducido una carpeta para borrarla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos el borrado
if [ -d /home/$USERNAME/$carpeta2 ]
then
echo "Ok, tu carpeta existe. Borrándola..."
rm -r /home/$USERNAME/$carpeta2
if [ $? -eq 0 ]
then
echo "Carpeta borrada con éxito"
else
echo "Error al borrar la carpeta"
fi
else
echo "La carpeta introducida no existe, no se borrará nada"
fi
fi
read -p "Pulse una tecla para continuar"
}
function listar_carpeta()
{
clear
echo "LISTADO DE CARPETA"
echo
echo "Estas son las carpetas actuales en tu home: "
ls /home/$USERNAME | more
echo "........................................"
read -p "Introduzca la carpeta a listar: " carpeta3
if [ -d /home/$USERNAME/$carpeta3 ]
then
echo "Listando carpeta..."
ls -l /home/$USERNAME/$carpeta3
else
echo "Error, la carpeta indicada no existe"
fi
read -p "Pulse una tecla para continuar"
}
# PROGRAMA PRINCIPAL
while [ "$opcion1" != "b" ]
do
clear
echo "*******MENU PRINCIPAL *********"
echo "a) Gestionar carpetas "
echo "b) Salir "
echo "***************************** **"
function crear_carpeta()
{
clear
echo "CREACIÓN DE CARPETA"
echo
read -p "Introduce el nombre de la carpeta a crear: " carpeta
if [ "$carpeta"="" ]
then
echo "No has introducido una carpeta para crearla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos la creación
echo "El nombre introducido es: " $carpeta
if [ -d /home/$USERNAME/$carpeta ]
then
echo "La carpeta indicada existe, no se creará"
else
mkdir /home/$USERNAME/$carpeta
if [ $? -eq 0 ]
then
echo "Carpeta creada con éxito"
else
echo "Error al crear la carpeta"
fi
fi
fi
read -p "Pulse una tecla para continuar"
}
function borrar_carpeta()
{
clear
echo "BORRADO DE CARPETA"
echo read -p "Introduce la carpeta a borrar: " carpeta2
if [ "$carpeta2"="" ]
then
echo "No has introducido una carpeta para borrarla"
exit 1
# Cerramos el script indicando error(drástico)
else
# Ahora gestionamos el borrado
if [ -d /home/$USERNAME/$carpeta2 ]
then
echo "Ok, tu carpeta existe. Borrándola..."
rm -r /home/$USERNAME/$carpeta2
if [ $? -eq 0 ]
then
echo "Carpeta borrada con éxito"
else
echo "Error al borrar la carpeta"
fi
else
echo "La carpeta introducida no existe, no se borrará nada"
fi
fi
read -p "Pulse una tecla para continuar"
}
function listar_carpeta()
{
clear
echo "LISTADO DE CARPETA"
echo
echo "Estas son las carpetas actuales en tu home: "
ls /home/$USERNAME | more
echo "........................................"
read -p "Introduzca la carpeta a listar: " carpeta3
if [ -d /home/$USERNAME/$carpeta3 ]
then
echo "Listando carpeta..."
ls -l /home/$USERNAME/$carpeta3
else
echo "Error, la carpeta indicada no existe"
fi
read -p "Pulse una tecla para continuar"
}
# PROGRAMA PRINCIPAL
while [ "$opcion1" != "b" ]
do
clear
echo "*******MENU PRINCIPAL *********"
echo "a) Gestionar carpetas "
echo "b) Salir "
echo "*****************************
read -p "Introduzca una opción: " -n1 opcion1
case $opcion1 in
a) while [ "$opcion2" != "4" ]
do
clear;
echo "******* MENU CARPETAS *******";
echo "1) Crear carpeta";
echo "2) Borrar carpeta";
echo "3) Listar carpeta";
echo "4) Salir";
echo "*****************************
read -p "Introduce una opción: " -n1 opcion2;
case $opcion2 in
1) crear_carpeta;;
2) borrar_carpeta;;
3) listar_carpeta;;
4) ;;
*) echo "Opción no válida";;
esac;
done;;
b)echo "Fin del script";;
esac
done
echo "Gracias por utilizar este programa"
read
exit 0
domingo, 4 de marzo de 2012
Sincronización de carpetas con rsync vía SSH
Vamos a sincronizar carpetas entre dos máquinas Linux, de manera parecida a como lo hacemos con DropBox. Pero queremos hacerlo a través de la red y utilizando el servicio SSH.
Para ello, necesitaremos tener instalado un servidor SSH en el equipo que recibirá la información (Openssh-server) . Ponemos en funcionamiento el servicio SSH y dejamos esa máquina esperando.
Nos vamos a la máquina Linux que tiene la información original, que suponemos estará en una carpeta del home u otra ubicación. Abrimos una consola de comandos y tecleamos por ejemplo:
rsync -avz /home/usuario/ akenon@192.168.1.52:/home/akenon/recipiente
Donde:
/home/usuario - es la carpeta origen, es decir, desde la que queremos sacar la información hacia la otra máquina.
akenon - es un usuario válido en la máquina destino.
@ - es el separador entre ese usuario y la IP de la máquina destino.
192.168.1.52 - es la IP de la máquina destino (La que tiene el servicio SSH activo)
:/home/akenon/recipiente - con los dos puntos indicamos que lo que viene detrás es la ruta de la carpeta que recibirá los datos de la sincronización, en la máquina destino.
Lógicamente, esta explicación puede cambiar si las carpetas están en otras ubicaciones y si se tiene permisos sobre ellas. Vosotros mismos.
Si todo va bien, se llevará a cabo la sincronización de carpetas sin problemas.
Para complementar la información indicada anteriormente, pásate por los siguientes enlaces y aclararás más de un concepto:
- Copia de archivos con Rsync de Trucos Linux
- Sincronizando carpetas con Rsync de Sitio Web de Juan Valencia
- Uso de ssh sin password de becodemyfriendo.com
- SSH sin contraseña entre dos equipos de Tuxapuntes.com
- Programando sincronización con rsync vía SSH a través de Cron de InformáticaJavier
Etiquetas:
backups,
openssh,
rsync,
Scripts Linux,
sincronización,
ssh
Enviar emails desde consola Ubuntu (ssmtp)
Para poder enviar emails fácilmente desde consola de comandos de GNU/Linux con una cuenta de gmail, realizaremos los siguientes pasos:
1) sudo apt-get install ssmtp
2) Editamos el archivo /etc/ssmtp/ssmtp.conf y añadimos la configuración de la cuenta de correo electrónico que realizará los envios. Busca los elementos que aparecen a la izquierda del igual y, si estás utilizando una cuenta de gmail, añade a la derecha los datos que se muestran a continuación.
root=usuario@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=usuario de gmail sin gmail.con
AuthUser=usuario de gmail
AuthPass=tu_password
Eliminaremos también el carácter # que aparece antes de la línea que contiene FromLineOverride=YES
3) Editamos ahora el archivo /etc/ssmtp/revaliases y, siguiendo los ejemplos que aparecen comentados en su interior, añadiremos dos líneas iguales a las siguientes:
root:usuario@gmail.com:smtp.gmail.com:587
tu_usuario_en_Linux:usuario@gmail.com:smtp.gmail.com:587
de este modo estarás indicando a ssmtp que tanto el root, como tu usuario genérico de Linux tienen permiso para enviar correos a través de ssmtp.
4) Ok, ya tenemos configurado ssmtp. Ahora para enviar un email podemos teclear:
ssmtp dirección_destino@loquesea.com.
El cursor se queda parpadeando y tendremos que indicar los elementos típicos de un mensaje de correo electrónico. Algo así:
5) Si quieres que el envío se realice sin interactividad, sólo tienes que preparar un archivo de texto en el que guardes en su interior (en el formato de email: From, Subject, Body,...) el contenido que desees y se lo pases al envío del mensaje. Por ejemplo, así:
Esto es todo, las posibilidades son innumerables cuando se trata de monitorizar servidores, supervisar copias de seguridad programadas, etc. Nuestros servidores nos avisarán de posibles incidencias o de su actividad, descargándonos de su vigilancia contínua.
1) sudo apt-get install ssmtp
2) Editamos el archivo /etc/ssmtp/ssmtp.conf y añadimos la configuración de la cuenta de correo electrónico que realizará los envios. Busca los elementos que aparecen a la izquierda del igual y, si estás utilizando una cuenta de gmail, añade a la derecha los datos que se muestran a continuación.
root=usuario@gmail.com
mailhub=smtp.gmail.com:587
rewriteDomain=
hostname=usuario de gmail sin gmail.con
AuthUser=usuario de gmail
AuthPass=tu_password
Eliminaremos también el carácter # que aparece antes de la línea que contiene FromLineOverride=YES
Nos posicionaremos al principio de este archivo de configuración y pondremos como primera línea:
UseSTARTTLS=YES 3) Editamos ahora el archivo /etc/ssmtp/revaliases y, siguiendo los ejemplos que aparecen comentados en su interior, añadiremos dos líneas iguales a las siguientes:
root:usuario@gmail.com:smtp.gmail.com:587
tu_usuario_en_Linux:usuario@gmail.com:smtp.gmail.com:587
de este modo estarás indicando a ssmtp que tanto el root, como tu usuario genérico de Linux tienen permiso para enviar correos a través de ssmtp.
4) Ok, ya tenemos configurado ssmtp. Ahora para enviar un email podemos teclear:
ssmtp dirección_destino@loquesea.com.
El cursor se queda parpadeando y tendremos que indicar los elementos típicos de un mensaje de correo electrónico. Algo así:
Subject: esto es una prueba desde consola
<dejamos una línea en blanco>
Este es el cuerpo del mensaje de prueba escrito desde consola.
<Para finalizar el mensaje pulsaremos Ctrl+D y se enviará automáticamente>
5) Si quieres que el envío se realice sin interactividad, sólo tienes que preparar un archivo de texto en el que guardes en su interior (en el formato de email: From, Subject, Body,...) el contenido que desees y se lo pases al envío del mensaje. Por ejemplo, así:
ssmtp dirección_destino@loquesea.com < mensaje_correo.txt
Esto es todo, las posibilidades son innumerables cuando se trata de monitorizar servidores, supervisar copias de seguridad programadas, etc. Nuestros servidores nos avisarán de posibles incidencias o de su actividad, descargándonos de su vigilancia contínua.
Etiquetas:
Linux,
Scripts Linux
domingo, 11 de marzo de 2007
Bienvenidos!!
Os doy la bienvenida al Blog del Profesor Jose Luis García. En este blog iré plasmando información útil relacionada con los módulos profesionales que imparto.
Espero que os sea útil.
Espero que os sea útil.
Suscribirse a:
Entradas (Atom)