¿Cuál es la forma recomendada de automatizar una tarea en Linux?

3

Todavía soy un poco nuevo en Linux, pero esto es lo que estoy tratando de hacer.

Necesito copiar todos los subdirectorios y archivos de un directorio a otro cada 5 minutos aproximadamente, y los datos antiguos se sobrescriben automáticamente con los nuevos.

También me gustaría que esto se ejecute al inicio. ¿Hay alguna manera de que esto se pueda hacer? Si es así, ¿qué programa necesitaría para programar la automatización y cuál es la línea de comando que necesitaría?

Niphoet
fuente
También porque hace que el sitio funcione mejor (esa es la verdadera razón ...)
intuyó el

Respuestas:

5

Haría la copia real con

rsync --archive --delete "fromdir/" "todir/"

Esto será más eficiente que usarlo cp, ya que rsyncsolo copia los archivos que han cambiado, e incluso entonces solo copia el cambio en sí, en lugar del archivo completo.

Si prefiere que no elimine los archivos todirque se han eliminado fromdir, simplemente omita la --deleteopción.

La --archiveopción básicamente le dice que conserve el estado de los archivos y su contenido. Tenga en cuenta que si tiene algún enlace simbólico dir1, esto copiará los enlaces en sí, y no los archivos a los que se vinculan. Usar esta bandera con rsynces similar a usar cp -a.

Asegúrese de usar la barra diagonal de cierre fromdir/: esto le indica rsyncque copie el contenido de ese directorio, en lugar del directorio en sí . En otras palabras, si deja de lado la final /, terminará con

todir/
todir/stuff
todir/fromdir/
todir/fromdir/morestuff

más bien que

todir/
todir/morestuff
intuido
fuente
¡+1 por mejorar mi respuesta!
BloodPhilia
+1 para la cooperación! En realidad no puedo, ya voté tu respuesta al principio.
intuido
3

Necesita poner un script en cron, cómo hacerlo, lea aquí: http://www.foogazi.com/2006/12/07/understand-cron-jobs-in-5-minutes/

En lugar de un script, podría escribir un comando para ejecutar en su crontab, se vería así:

*/5 * * * * cp -r /fromdir /todir

también agregue a / etc / crontab la siguiente línea para exudarla en el arranque:

@reboot root cp -r /fromdir /todir
BloodPhilia
fuente