A veces necesitamos generar ficheros a intervalos regulares en un determinado directorio sin perder los creados anteriormente. Para hacerlo de forma automática y desde un script es necesario que los nombres de los ficheros generados sean diferentes en cada ocasión. Existen distintas formas de hacer esto. Os voy a contar mis dos favoritas con un ejemplo en el que volcamos en el fichero un listado con los procesos en ejecución en el momento de crearlo.
En el primer método creamos un fichero cuya marca distintiva es un número secuencial que empieza por el 0 y que se irá incrementando de 1 en 1. En este ejemplo los ficheros creados serán ps_0.txt, ps_1.txt, etc.
#!/bin/sh cd /var/archivos/ numero=$(ls ps* | wc -l) fichero=ps_$numero.txt ps aux --sort -rss > $fichero
El segundo método usa una marca de tiempo que incluye año, mes, día, hora y minuto. Al generar el fichero en el momento de escribir este texto el nombre sería ps_20160401-17:55.txt
#!/bin/sh cd /var/archivos/ fecha=`date +%Y%m%d-%H:%M` fichero=ps_$fecha.txt ps aux --sort -rss > $fichero