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 -i
。arp-scan
Sudoが必要です。私はFedora 20で実行しています。
答え1
cron
非常に小さな環境と単純化されたパスで実行されます。
cron
すべてのコマンドがフルパスを提供するか、スクリプトが独自のPATH変数を設定するように実行されるように設計されたスクリプトで常に最も安全です。
コマンドにフルパスを追加してみてくださいarp-scan
。