Moin zusammen,
ich stehe gerade vor folgendem Problem:
Ich möchte Dateien unter Linux per Script von einer Ordnerstruktur in eine andere verschieben, dabei soll die Ordnerstruktur beibehalten werden.
Es wird von einem Scanner auf eine Netzwerkfreigabe "Input\A\1" oder "Input\B\2" oder "Input\C\1\XY" usw. eingescannt. Nun sollen die PDF Dokumente von z.B. "Input\A\1\xyz.pdf" nach "work\A\1\xyz.pdf" alle 60 Sekunden verschoben werden, damit Tesseract drüber laufen kann.
Grundsätzlich hat das mit folgendem Script funktioniert: (Das Script läuft von morgens bis Abends in Dauerschleife und wird um 00:10 per Crontab noch mal gestartet)
Problem hierbei ist das es doch häufiger vorkommt das genau in dem Moment gescannt wird, während der cp Befehl läuft und dann der Löschbefehl. Somit wurde das PDF Dokument noch nicht verschoben aber im nächsten Schritt schon gelöscht.
Das gleiche Passiert wenn ich die Dateien gar nicht in ein "work" Folder für tesseract kopiere, wenn tesseract läuft und es kommt ein neues PDF Dokument vom Scanner, wird am Ende von tesseract auch das Dokument gelöscht. Daher mein Ansatz mit dem work Folder.
Vlt. hat ja jemand eine Idee wie sich das ohne großen Aufwand realisieren lässt? Am besten wäre ein mv Befehl. Hier scheitert es aber daran das die Ordnerstruktur mit allen Unterordnern beibehalten werden muss.
ich stehe gerade vor folgendem Problem:
Ich möchte Dateien unter Linux per Script von einer Ordnerstruktur in eine andere verschieben, dabei soll die Ordnerstruktur beibehalten werden.
Es wird von einem Scanner auf eine Netzwerkfreigabe "Input\A\1" oder "Input\B\2" oder "Input\C\1\XY" usw. eingescannt. Nun sollen die PDF Dokumente von z.B. "Input\A\1\xyz.pdf" nach "work\A\1\xyz.pdf" alle 60 Sekunden verschoben werden, damit Tesseract drüber laufen kann.
Grundsätzlich hat das mit folgendem Script funktioniert: (Das Script läuft von morgens bis Abends in Dauerschleife und wird um 00:10 per Crontab noch mal gestartet)
Code:
#!/bin/bash
while /bin/true; do
start_date=$(date "+%d-%m-%Y")
current_date=$start_date
while [ "$start_date" = "$current_date" ]; do
sleep 1m
cp -r /mnt/ocr/input/* /mnt/ocr/tesseractwork/
find /mnt/ocr/input -name '*.pdf' -delete
/home/xyz/OCRmyFiles.sh
current_date=$(date "+%d-%m-%Y")
done
done
exit
Problem hierbei ist das es doch häufiger vorkommt das genau in dem Moment gescannt wird, während der cp Befehl läuft und dann der Löschbefehl. Somit wurde das PDF Dokument noch nicht verschoben aber im nächsten Schritt schon gelöscht.
Das gleiche Passiert wenn ich die Dateien gar nicht in ein "work" Folder für tesseract kopiere, wenn tesseract läuft und es kommt ein neues PDF Dokument vom Scanner, wird am Ende von tesseract auch das Dokument gelöscht. Daher mein Ansatz mit dem work Folder.
Vlt. hat ja jemand eine Idee wie sich das ohne großen Aufwand realisieren lässt? Am besten wäre ein mv Befehl. Hier scheitert es aber daran das die Ordnerstruktur mit allen Unterordnern beibehalten werden muss.