ubuntuusers.de

Crontab -e -> Dateien mit Name*.csv suchen und auf ein Windows Share verschieben?

Status: Gelöst | Ubuntu-Version: Ubuntu 22.04 (Jammy Jellyfish)
Antworten |

CarstenLeh

Anmeldungsdatum:
19. November 2024

Beiträge: 5

Moin liebes Forum,

folgende Frage von einem Linuxneuling. Wir haben in der Firma einen Linux 22.04 lts als Datenbankserver für Claris Filemaker Pro installiert.

Mit meiner Datenbank habe ich einige Sachen automatisiert mit Jobs, die nachts laufen u. zum Bsp. Dateien (CSV, Excel, PDF) erstellen.

Jetzt möchte ich einen Crontab -e einrichten, der diese Daten auf ein /mnt/Laufwerk/Ordner sucht und verschiebt, hierbei hatte ich Unterstützung eines externen IT´ler, der aber aktuell im Urlaub ist.

*/30 * * * * cp /opt/FileMaker/FileMaker\ Server/Data/Documents/Bestand*.csv /mnt/Laufwerk/Ordner/ -r

#*/1 * * * * find "/opt/FileMaker/FileMaker Server/Data/Documents" -iname Bestand_FC_\* -exec mv {} /mnt/Laufwerk/Ordner2

Kann mir jemand erklären, warum dieser Job im Crontab nicht funktioniert? Per Hand ausgeführt funktioniert das, allerdings sollen die Dateien im besten Fall vom Linux Ordner in das /mnt verschoben werden.

Gruß Carsten Lehmann

Bearbeitet von redknight:

Codeblock

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9615

Wohnort: Münster

Wenn Du Cron einsetzen möchtest – was nicht mehr Stand der Technik ist, aber noch funktioniert – lese am besten zuerst den Artikel dazu im Wiki.

CarstenLeh

(Themenstarter)

Anmeldungsdatum:
19. November 2024

Beiträge: 5

Hallo!

Den Wiki Artikel habe ich (neben anderen Forenbeiträgen) mir schon mal angeschaut, wie geschrieben der externe hat das auch funktionsfertig hinbekommen, aber die "alten Dateien" werden nicht gelöscht.

Wie könnte ich es denn besser lösen → statt Crontab?

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21827

Wohnort: Lorchhausen im schönen Rheingau

Hi,

CarstenLeh schrieb:

wie geschrieben der externe hat das auch funktionsfertig hinbekommen, aber die "alten Dateien" werden nicht gelöscht.

Weil Shell/cp kopiert. Du hast aktuell nichts, was löscht und einen Job mit "verschieben", der aber auskommentiert ist und daher nicht ausgeführt wird. Letzteres hast Du ja bestimmt durch deine Lektüre des Cron-Wikiartikels schon herausgefunden.

CarstenLeh

(Themenstarter)

Anmeldungsdatum:
19. November 2024

Beiträge: 5

Hi!

CarstenLeh schrieb:

wie geschrieben der externe hat das auch funktionsfertig hinbekommen, aber die "alten Dateien" werden nicht gelöscht.

Weil Shell/cp kopiert. Du hast aktuell nichts, was löscht und einen Job mit "verschieben", der aber auskommentiert ist und daher nicht ausgeführt wird. Letzteres hast Du ja bestimmt durch deine Lektüre des Cron-Wikiartikels schon herausgefunden.

Ja, das habe ich ausdokumentiert, danke nochmal für den Hinweis 😉

Würde das mit mv statt cp denn funktionieren?

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13166

Bei dem find fehlt am Ende auch noch "\;". Besser noch so:

1
find "/opt/FileMaker/FileMaker Server/Data/Documents" -iname Bestand_FC_\* -exec mv -t /mnt/Laufwerk/Ordner2 {} +

CarstenLeh

(Themenstarter)

Anmeldungsdatum:
19. November 2024

Beiträge: 5

Hallo!

Sorry ich habe es vorher nicht geschafft mich darum zu kümmern. Aber vielen Dank → er verschiebt die Dateien - also in der Quelle ist nichts, im Ziel alle → wunderbar

Ich erhalte allerdings diese Meldungen, verschieben macht er trotzdem sauber.

find "/opt/FileMaker/FileMaker Server/Data/Documents" -iname Bestand_FC_\* -exec mv -t /mnt/Laufwerk/Ordner {} +
mv: die Zeiten für '/mnt/Laufwerk/Ordner/Bestand_FC_20241123181547.csv' werden beibehalten: Vorgang nicht zulässig
mv: Erhalten der Zugriffsrechte für »/mnt/Laufwerk/Ordner/Bestand_FC_20241123181547.csv“: Vorgang nicht zulässig
mv: die Zeiten für '/mnt/Laufwerk/Ordner/Bestand_FC_20241120182411.csv' werden beibehalten: Vorgang nicht zulässig
mv: Erhalten der Zugriffsrechte für »/mnt/Laufwerk/Ordner/Bestand_FC_20241120182411.csv“: Vorgang nicht zulässig
mv: die Zeiten für '/mnt/Laufwerk/Ordner/Bestand_FC_20241112201543.csv' werden beibehalten: Vorgang nicht zulässig
mv: Erhalten der Zugriffsrechte für »/mnt/Laufwerk/Ordner/Bestand_FC_20241112201543.csv“: Vorgang nicht zulässig
mv: die Zeiten für '/mnt/Laufwerk/Ordner/Bestand_FC_20241118181546.csv' werden beibehalten: Vorgang nicht zulässig

rklm schrieb:

Bei dem find fehlt am Ende auch noch "\;". Besser noch so:

1
find "/opt/FileMaker/FileMaker Server/Data/Documents" -iname Bestand_FC_\* -exec mv -t /mnt/Laufwerk/Ordner2 {} +

Bearbeitet von rklm:

Codeblock. Bitte beachte Forum/Syntax und nutze die Vorschaufunktion!

CarstenLeh

(Themenstarter)

Anmeldungsdatum:
19. November 2024

Beiträge: 5

Dann hätte ich noch eine Bitte:

Ich dachte ich kann die Syntax "einfach" umbauen, klappt aber nicht. hier möchte ich NUR im Ordner Documents/ *.PDF suchen u. diese auf das Ziel verschieben:

Dieser Befehl verschiebt mir aber den Ordner Documents samt aller Inhalte (also auch CSV, Excel) auf das Ziel, das ist zu viel 😉

1
find "/opt/FileMaker/FileMaker Server/Data/Documents/" *.pdf -exec mv -t /mnt/Laufwerk/Ordner {} +

Wäre lieb, wenn das noch mal jemand korrigieren könnte 😉

Gruß Carsten

Bearbeitet von rklm:

Codeblock. Bitte beachte Forum/Syntax und nutze die Vorschaufunktion!

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13166

CarstenLeh schrieb:

Ich dachte ich kann die Syntax "einfach" umbauen, klappt aber nicht. hier möchte ich NUR im Ordner Documents/ *.PDF suchen u. diese auf das Ziel verschieben:

Du musst halt die Suchbedingungen richtig setzen. Bitte schau auch mal nach mit man find.

1
find "/opt/FileMaker/FileMaker Server/Data/Documents/" *.pdf -exec mv -t /mnt/Laufwerk/Ordner {} +

Wäre lieb, wenn das noch mal jemand korrigieren könnte 😉

1
find "/opt/FileMaker/FileMaker Server/Data/Documents/" -name '*.pdf' -exec mv -t /mnt/Laufwerk/Ordner {} +
Antworten |