Linux – Programar tareas de única ejecución

linux command - $ man at

$ man at

 

El comando at se emplea para programar una única tarea en Linux  un tiempo específico. Este comando puede recibir órdenes de la entrada estándar o desde un fichero, que por lo regular es un script de bash.

Sintaxis:

at [-f script] hora [am:pm] fecha
at -f script.sh 11:59 pm 01.02.2012

Ejemplo usando la entrada estándar:
Para esta forma solo se debe especificar la hora y opcional la fecha de ejecución (verificar la hora del sistema linux), indicado esto debemos especificar una tarea por línea como se aprecia a continuación, para finalizar se debe marcar el fin de la entrada (EOF) presionando Ctrl + D.

luchoalco@lucho-PC:~$ at 04:25 pm
warning: commands will be executed using /bin/sh
at> history >> history.txt
at> <EOT>
job 1 at Fri Feb 10 16:25:00 2012

Una vez finalizado se nos indicara el ID de la tarea, en este caso 1, esto nos servirá para poder eliminar la tarea de ser requerido. Además se indica la hora y fecha de ejecución.

Ejemplo usando un archivo de entrada:

En este caso como se vio en la sintaxis se debe especificar el script a ejecutarse.

luchoalco@lucho-PC:~$ at -f at_prueba.sh 04:25 pm 12.02.2012
warning: commands will be executed using /bin/sh
job 3 at Sun Feb 12 16:25:00 2012

Para listar las tareas pendientes usamos el parámetro “-l”

luchoalco@lucho-PC:~$ at -l
1    Fri Feb 10 16:25:00 2012 a luchoalco
3    Sun Feb 12 16:25:00 2012 a luchoalco
2    Sat Feb 11 16:25:00 2012 a luchoalco

Como se ve indica el ID de la tarea, la hora y fecha de ejecución y el usuario que la programó.

Para eliminar cualquiera de ellas, se debe usar el comando atrm seguido del ID correspondiente.

luchoalco@lucho-PC:~$ atrm 3

 

Para información detallada  y amplia visitar el siguiente enlace:

at – execute commands at a later time in Linux

Cambiar la contraseña root de MySQL

Varias veces te has encontrado con equipos en los cuales nadie sabe la contraseña del usuario ‘root’ de MySQL?, pues no hay problema, podrás establecer una nueva. Siempre y cuando se tenga acceso de root al servidor.

Detener el servicio de MySQL

#> service mysqld stop
o
#> /etc/init.d/mysqld stop

Iniciar en modo FULL o abierto

#> mysqld_safe --skip-grant-tables --skip-networking&

esta opción causa que el servidor no use el sistema de privilegios lo que le da acceso ilimitado a todas las bases de datos a todos los usuarios de la base de datos.

NOTA: Si MySQL fue configurado y compilado con la opción ‘–disable-grant-options’ entonces lo anterior no funcionará y no hay mucho que se pueda hacer entonces y no se podrá cambiar la contraseña, aunque en la práctica realmente esta opción casi no se usa.

deja de escuchar (LISTEN) conexiones TCP/IP provenientes de la red, es decir MySQL trabajaría en un ambiente totalmente local.

Iniciar la línea de comandos de MySQL

#>mysql -u root

Como no hay sistema de privilegios en este momento, no se preguntara por la contraseña.

Usamos la base de datos del sistema mysql

mysql> use mysql;

Actualizamos el campo que cambiará la contraseña de ‘root’

mysql> UPDATE user SET password=PASSWORD('newPass') WHERE user='root';
Query OK, 1 rows affected (0.07 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> exit
#>

Reiniciar el servidor MySQL

#> service mysqld restart

La siguiente vez que se intente ingresar al cli de MySQL () usa la nueva clave o contraseña.

Cambiar la Hora y la Fecha en Linux

Para cambiar la hora del sistema usaremos el comando date, pero hemos de tener en cuenta que al reinicializar el ordenador, éste cogerá la hora de la BIOS y nos volverá a colocar la hora anterior, para evitar esto cambiaremos también la hora de la BIOS con el comando hwclock como se detalla a continuación:
Supongamos queremos poner: 8-Febrero-2012 y la hora 09:32
Esto lo haremos como root o con sudo en su defecto:

# date --set "2012-02-08 09:32"
mié feb  8 09:32:00 ECT 2012

Ahora realizaremos el mismo cambio para actualizar la fecha en la BIOS.

# hwclock --set --date="2012-02-08 09:32"

Para comprobarlo tecleamos:

# hwclock
mié 08 feb 2012 09:32:08 ECT  -0.203639 segundos

Y listo, su relojes del sistema quedarán actualizados!