Sudo-Cron-Job mit Arp-Scan gibt leere Ausgabe aus

Sudo-Cron-Job mit Arp-Scan gibt leere Ausgabe aus

Ich habe ein Skript mit dem Namen erstellt hello.sh, das Folgendes enthält:

#!/bin/bash

printf "$( arp-scan --interface=eth0 --localnet )\n"
printf "test\n"

nachdem ich es ausführbar gemacht ( chmod o+x) und ausgeführt habe ( ./hello.sh >> file.txt), erhalte ich die korrekte Ausgabe file.txt(das ist das Arp-Scan-Ergebnis und die Zeichenfolge „test“). Aber nachdem ich die folgende Zeile hinzugefügt habe crontab -e:

*/1 * * * *  /path/to/hello.sh >> /path/to/file.txt

Ich erhalte die folgende Ausgabe:

prüfen

prüfen

prüfen

Wie Sie sehen, gibt das arp-scanTeil eine leere Zeichenfolge zurück. Wie kann ich Arpscan mit Cron zum Laufen bringen?

Zusätzliche Information:Alles ist nach der Anmeldung als sudo ( sudo -i) erledigt. arp-scanbenötigt sudo. Ich führe dies auf Fedora 20 aus.

Antwort1

cronläuft mit einer sehr minimalen Umgebung und einem reduzierten Pfad.

In Skripten, die von ausgeführt werden sollen, ist es immer am sichersten, cronsicherzustellen, dass für alle Befehle der vollständige Pfad angegeben wird oder dass das Skript seine eigene PATH-Variable festlegt.

Versuchen Sie, dem Befehl den vollständigen Pfad hinzuzufügen arp-scan.

verwandte Informationen