TareasProg

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,71 KB

Boletín Tareas Programas o Ejecución diferida: at, cron . ((((2CARAS))))

1.- ¿Cómo puedo saber si está funcionando el demonio correspondiente al comando at? ¿Y cron?
Se sabe utilizando el comando top en el terminal
Ps -e | grep at
Ps -e | grep cron

2.- Explique como realizar las tareas que se describen a continuación:

El viernes a las 9:00pm se desea realizar una copia de seguridad (con el comando tar) de las carpetas personales de todos los usuarios del grupo users.
Escribiriamos:
at 9:00 pm october 24
tar cfvz /guser.tar.gz /home/*
· Dentro de 5 minutos se desea realizar una copia de seguridad del directorio del administrador.
at now +5 minute
tar cvfz /copia_seguridad.tar.gz /root/*
· Realizar una copia del directorio /etc/sysconfig en el archivo backup_configuracion.tar.bz2 a partir del 12 de diciembre del 2004, pero cuando la carga del sistema sea baja.
Vim a.txt
tar cfvj ~/backup_configuracion.tar.bz2 /etc/sysconfig/*
vim b.txt
batch < a.txt
at -f b.txt 12/12/2004
· Todos los viernes a las 21:15 se lanzará la tarea copia_seguridad.bash
crontab -e
15 21 * * 5 /home/dfsi/copia_seguridad.bash
CTRL+X
· Todos los días a las 9:50 se lanzará la tarea primer_plano.bash, cuando la carga del sistema sea menor que 1.5.
(cron daily)

vim c.txt
/home/dfsi/primer_blano.bash
:wq

crontab -e
50 09 * * * batch < c.txt
CTRL.+X
· Cada hora de todos los días laborables de la semana se lanzará la tarea segundo_plano.bash
(cron hourly)

crontab -e
00 * * * 1-5 /home/dfsi/segundo_plano.bash
CTRL.+X
· Todos los días 1 de cada mes se lanzará la tarea copia_seguridad2.bash
(cron monthly)

crontab -e
* * 1 * * /home/dfsi/ copia_seguridad2.bash
· Todos los días a la 21:00 se matarán todos los procesos de los usuarios que estén conectados al sistema.
Sudo vim mataproc.txt
#!/usr/bin/php5
exec("ps au | cut -d' ' -f7 > procesos.txt");
$f=fopen("procesos.txt","r");
if($f!=NULL)
{
while (!feof($f))
{
$frase=fgets($f);
$frase=fgets($f);
if($frase!="")
{
exec("kill -9 " . $frase);
}
}
echo "Todos los procesos han sido terminados.\\n";
}
else
echo "Error al abrir el fichero.\\n"
?>
:wq

crontab -e
00 21 * * * /home/dfsi/mataproc.txt
CTRL.+X.




3. Programar tareas para que se ejecuten dentro de unos minutos, de forma que obtengan:
1. un listado del contenido de la carpeta /tmp y lo guarde en la carpeta del usuario
como un fichero de nombre tmp­list.txt
at now + 1 minute
ls -l /tmp > /home/user/tmp-list.txt
2. un listado de los usuarios conectados al sistema, y lo guarde en un fichero.
at now + 1 minute
who > usuarios.txt
3. un listado de las conexiones de red activas (netstat -­t).
at now + 1 minute
netstat -t
4. el espacio ocupado en los discos (df -h)
at now + 1 minute
df -h
4. Programar alguna de las tareas anteriores para que se ejecuta el 11 de marzo de 2009
at 03/11/2009
df -h
5. Eliminar esta última tarea programada de la cola de tareas.
Atq (at -q)
atrm 7 (at -r 7)
6. Programe una tarea que se ejecute de forma diaria y que realice una copia de todo el
contenido en su cuenta de usuario a la carpeta /opt/backup. Haga dos versiones:
vim copia.bash
tar cvfz copia.tar.gz ~/*
mv copia.tar.gz /opt/backup
:wq
1. Tarea programada por un usuario convencional mediante “crontab ­e”
crontab -e
* 00 * * * copia.bash
CTRL.+X
2. Tarea programada por el administrador mediante instalación de un script
en /etc/cron.daily
sudo cp copia.bash /rtc/cron.daily
7. Programe una tarea que se ejecute cada 2 min. y que añada al fichero
“/tmp/uptime.txt” la salida del comando “uptime”. Compruebe la ejecución de esta
tarea.
vim repetir.bash
while(true)
do
sleep 120
uptime >> /tmp/uptime.txt
done
:wq
./repetir.bash &

/------------------------/
crontab -e
*/2 * * * *

Entradas relacionadas: