arp-scan を使用する Sudo cron ジョブは空の出力を提供します。

arp-scan を使用する Sudo cron ジョブは空の出力を提供します。

hello.sh以下を含むスクリプトを作成しました。

#!/bin/bash

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

実行可能にして(chmod o+x)実行した後(./hello.sh >> file.txt)正しい出力file.txt(例:arpスキャン結果と文字列 "test")を取得しました。しかし、次の行を追加した後 crontab -e

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

次の結果が表示されます。

テスト

テスト

テスト

ご覧のとおり、このarp-scan部分は空の文字列を返します。 arpscanをcronと連携させる方法は?

追加情報:sudo()でログインすると、すべての準備が完了しますsudo -iarp-scanSudoが必要です。私はFedora 20で実行しています。

答え1

cron非常に小さな環境と単純化されたパスで実行されます。

cronすべてのコマンドがフルパスを提供するか、スクリプトが独自のPATH変数を設定するように実行されるように設計されたスクリプトで常に最も安全です。

コマンドにフルパスを追加してみてくださいarp-scan

関連情報