Script hilfe gesucht: Dateien verschieben

Status
Für weitere Antworten geschlossen.

parodontix

Benutzer
Mitglied seit
17. Dez 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich stehe vor einer an sich einfachen Aufgabe, aber das Skript dazu scheint schwierig zu sein...:
- Ein Scanner legt neue Scans auf einer Speicherkarte ab.
- Die Speicherkarte ist als REMOTE-FOLDER per CIFS in der Synology gemounted, alle Dateien sind im Netz sichtbar.
- Der Scanner legt seine Dateien in dem Forma DATEI001 ... DATEI002... DATEI003... etc ab. Dabei zählt er immer eine Datei höher als die letzte vorhandene, heißt, wenn man die Dateien löscht, fängt er wieder bei 1 an.

Das Skript sollte idealerweise folgendes können:
- Dateien aus dem RemoteFolder verschieben nach /volume1/scanner (o.ä.)
- Die Datei dabei umbenennen und zwar am besten gemäß Datum und Uhrzeit aus der Quelldatei (z.B: "Scan2014-12-14-15-37-28.pdf")

Ich habe verschiedenes durchprobiert, aber weil die Kommandos bzw. deren Umfang auf der Syn doch etwas anders sind als unter "normalem" Linux komme ich irgendwie nicht weiter.
Hat jemand eine Idee?

Warum das Ganze: Die Scan-Dateien sollen anschliessend auf der Cloudstation direkt beim Anwender auf dem PC landen, egal wo der gerade ist.
Die Netzwerk-Backup/Sync Funktionen der Syn erlauben leider nicht, dass man automatisch vom RemoteFolder auf den lokalen Server synct.
Auf dem Scanner müssen die Files irgendwann verschwinden, sonst läuft der SPeicher voll. Abgesehen davon könnte man den Speicher auch leicht stehlen. Werden die Dateien einfach nur kopiert (das Script dazu funktioniert), würden die Scan-Dateien am Ziel überschrieben, sobald man auf dem Scanner selbst die Dateien löscht (weil er dann wieder bei 1 anfängt, die Datei gibt es im Ziel aber schon...).

VIelen Dank für Eure Hilfe
 

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22
Versuch mal auf der Shell:

mvdate(){ mv $1 ${1}_`stat -c '%y' $1 | cut -f 1 -d " "`.pdf;}

und dann auf der Shell:

mvdate DATEI001.pdf

Gruss Dany

Edit: Noch mit Uhrzeit:
Rich (BBCode):
mvdate(){ mv $1 ${1}_`stat -c '%y' ./test.txt | cut -f 1 -d "." | sed -e s/':'/\-/g | sed -e s/' '/\_/g`.pdf;}
 
Zuletzt bearbeitet:

parodontix

Benutzer
Mitglied seit
17. Dez 2014
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Also das passiert:

mvdate datei001.pdf
stat: invalid option -- 'c'
...
Usage: stat [OPTIONS] FILE...
..
Display file (default) or filesystem status

Options:
-f Display filesystem status
-L Follow links
-t Display info in terse form

aus datei001.pdf wurde datei001.pdf_pdf

Ich verstehe allerdings nicht ganz die Syntax des mvdate kommandos. Scheint aber auf dem richtigen Weg zu sein

Danke für die schnelle Antwort
 

dany

Benutzer
Mitglied seit
31. Mrz 2008
Beiträge
352
Punkte für Reaktionen
0
Punkte
22
Hm, auf meiner DS211+ gehts. Kannst du mal folgendes probieren?

stat -c '%y' ./datei.pdf

Im obigen Beispiel erstellst du damit eine eigene Funktion die du dann auf der Shell ausführen kannst. Das spart manchmal Tipparbeit.
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.164
Punkte für Reaktionen
412
Punkte
393
Hallo,
die -c Option kennt nur das stat aus ipkg, /bin/stat ist Teil der busybox und kennt diese Option nicht.

Gruß Götz
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat