sirve scripts script que programas programacion pasar parametros para hacer ejemplos como bash time

que - scripts bash ejemplos



Cuál es la mejor forma de realizar la comparación de marca de tiempo en Bash (3)

Tengo una secuencia de comandos de alerta que trato de evitar que me envíen spam, por lo que me gustaría establecer la condición de que si se ha enviado una alerta, por ejemplo, la última hora, para no enviar otra alerta. Ahora tengo un trabajo cron que comprueba la condición cada minuto porque necesito que se lo avise rápidamente cuando se cumple la condición, pero no necesito recibir el correo electrónico de todos los munite hasta que tenga el problema bajo control. ¿Cuál es la mejor manera de comparar el tiempo en bash para lograr esto?


Use "prueba":

if test file1 -nt file2; then # file1 is newer than file2 fi

EDITAR: si desea saber cuándo ocurrió un evento, puede usar "tocar" para crear un archivo que luego puede comparar usando "prueba".


Use el comando de fecha para convertir las dos veces en un formato estándar y restelas. Es probable que desee almacenar el tiempo de ejecución anterior en un archivo de puntos y luego haga algo como:

last = cat /tmp/.lastrun curr = date ''+%s'' diff = $(($curr - $last)) if [ $diff -gt 3600 ]; then # ... fi echo "$curr" >/tmp/.lastrun

(Gracias, Steve.)


Por mucho, lo más fácil es almacenar marcas de tiempo como tiempos de modificación de archivos ficticios. Los comandos de touch y date GNU pueden establecer / obtener estos tiempos y realizar cálculos de fecha. Bash tiene pruebas para verificar si un archivo es más nuevo que ( -nt ) o anterior a ( -ot ) otro.

Por ejemplo, para enviar solo una notificación si la última notificación fue hace más de una hora:

touch -d ''-1 hour'' limit if [ limit -nt last_notification ]; then #send notification... touch last_notification fi