Script Bash: demora el command cp hasta que se complete la escritura del file

cp /Folder1/*.mov /Folder2/ cp /Folder1/*.mov /Folder3 rm /Folder1/*.mov 

Esto se ejecuta cada 60 segundos usando Chron que copy cualquier file * .mov de una carpeta a otras 2 carpetas y luego elimina el file.

Si el file tarda más de 60 segundos en escribirse, la secuencia de commands se ejecuta y copy todo lo que esté en la carpeta y la corrompe. (O si el script simplemente se ejecuta cuando se está escribiendo un file).

  • Cómo recuperar la contraseña de Wi-Fi de una networking conectada en una Mac
  • Apple Mail: solo admite TLS v1.0
  • ¿Cmd + F10 silencia la Mac un atajo de keyboard de OS X incorporado?
  • El volumen en Mac aumenta automáticamente cuando los auriculares están enchufados
  • ¿Cómo puedo proteger contra escritura (hacer de solo lectura) una unidad USB en OS X?
  • Forma rápida de alternar entre "Texto más grande", "Pnetworkingeterminado" y "Más espacio" en Macbook Retina
  • ¿Cómo puedo hacer una statement condicional para que la secuencia de commands espere hasta que se complete la escritura del file?

  • Lectura programática de ambos títulos de Terminal.app por pestaña
  • La connection a Mac OS 10.7 desde Windows a través de VNC se cuelga en / después de la pantalla de inicio de session
  • Agregar function al software SelfControl: elija la interfaz de networking para bloquear
  • Ejecuta una aplicación Cocoa en Lion como otro usuario
  • Abre iTunes cuando el iPhone está conectado en una Mac
  • ¿Hay un atajo de keyboard para minimizar las windows de Mac OS X?
  • One Solution collect form web for “Script Bash: demora el command cp hasta que se complete la escritura del file”

    Archivo de locking

    Considere la posibilidad de crear un candado para anotar la copy en curso; consulte bloquear su secuencia de commands (contra ejecución paralela) :

     #!/bin/sh # Path to a lock folder LOCK_PATH="/tmp/copying.lock" # Ensure the lock is removed should the copy fail trap 'rmdir "/tmp/copying.lock"; exit' 1 6 15 if mkdir "$LOCK_PATH"; then # Lock file did not exist and was created # Perform commands cp /Folder1/*.mov /Folder2/ cp /Folder1/*.mov /Folder3 rm /Folder1/*.mov # Remove the lock rmdir "$LOCK_PATH" fi 

    El script anterior solo copy si no existe una carpeta en /tmp/copying.lock .

    Copiar y mover

    En lugar de copyr directamente a la location final, considere realizar la copy en una location temporal. Luego mueva los files. Un movimiento es rápido, tiende a ser atómico y es less probable que dañe los files.

    Alternativamente, puede copyr usando una herramienta como rsync que incluye indicadores para ayudar a proteger contra estos problemas.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).