Cron-Installation ist vixie-cron
/etc/cron.daily/rmspam.cron
Ich habe dieses simple Bash-Skript, das ich zu einem Cron-Job hinzufügen möchte (enthält auch Spam-Lernbefehle), aber dieser Teil schlägt immer mit "Datei oder Verzeichnis nicht gefunden" fehl. Von dem, was ich sehe, ist der Metachar nicht richtig interperted, wenn als Cron-Job ausgeführt. Wenn ich das Skript über die Befehlszeile ausführe, funktioniert es einwandfrei.
Ich möchte ein warum dafür nicht arbeiten und natürlich eine funktionierende Lösung:)
Danke
Bearbeiten # 1 kam zu dieser Frage zurück, als ich populäres Fragezeichen dafür bekam. Ich habe das zuerst gemacht,
%Vor%und erst kürzlich habe ich die Manpage von xargs durchgelesen und zu diesem geändert
%Vor%kurze xargs Option ist -r
Wenn sich keine Dateien im Verzeichnis befinden, wird das Platzhalterzeichen nicht erweitert und direkt an den Befehl übergeben. Es gibt keine Datei namens "*", und der Befehl schlägt fehl mit "Datei oder Verzeichnis nicht gefunden". Versuchen Sie es stattdessen:
%Vor%Oder verwenden Sie einfach den "-f" -Flag für rm. Das andere Problem mit diesem Befehl tritt auf, wenn zu viel Spam für die maximale Länge der Befehlszeile vorhanden ist. So etwas ist wahrscheinlich insgesamt besser:
%Vor%Wenn Sie einen alten Fund haben, der nur eine Datei gleichzeitig ausführt:
%Vor%Das behandelt zu viele Dateien sowie keine Dateien. Danke an Charles Duffy, dass er die + Option auf -exec in find hingewiesen hat.
Versuchen Sie es mit einer force-Option und vergessen Sie nicht, einen Pfad zum rm-Befehl hinzuzufügen. Ich denke, es sollte nicht gebraucht werden ...
%Vor%Dadurch wird sichergestellt, dass der Befehl rm auch dann fehlschlägt, wenn sich keine Dateien im Verzeichnis befinden. Wenn dies ein Teil eines Shell-Skripts ist, sollte das * funktionieren. Es sieht für mich so aus, als hättest du ein leeres Verzeichnis ...
Ich verstehe, dass der Rest des Skripts ausgeführt wird, oder?