EC2インスタンスcrontabとslack-cleanerを使用して、48時間を超えるすべてのSlackメッセージを削除します。bashスクリプトがシェルで実行され、crontabに「not found」エラーが表示される
for CHANNEL in random general
do
slack-cleaner --token <MY TOKEN> --message --channel $CHANNEL --user "*" --before $(date -d '48 hour ago' "+%Y%m%d") --perform
done
は、その後、私はそれが私が一度タイミングを変更します働くたら(それを毎分を実行するためのcrontabのラインを作成しました:これを行うには、私は(私は私のたるみAPIトークンを削除した)delete_slack.shを作成しました日)とcronがログファイルに結果を吐き出すた:テストするには
* * * * * /home/ubuntu/delete_slack/delete_slack.sh >> /var/log/delete_slack.log 2>&1
、私はシェルでsh /home/ubuntu/delete_slack/delete_slack.sh >> /var/log/delete_slack.log 2>&1
を実行し、それが正常に動作します。しかし、私がcrontabを実行させると、ログファイルにエラーが表示されます。
/home/ubuntu/delete_slack/delete_slack.sh: 3: /home/ubuntu/delete_slack/delete_slack.sh: slack-cleaner: not found
アイデアはありますか?私はこの午後すべてに頭を叩きました。
あなたの「スクリプトのPATHを設定する」とは何を意味するのですか? – Anton
export PATH = $ PATH:/ path/to/dir/of/slack-cleaner'(明らかに、最後に余裕のあるクリーナーが必要です。これはシェルがどのディレクトリに実行可能ファイル/スクリプトを検索するかを指示します。 '$ PATH:... 'を使って、既存のパスに追加します。 – John3136
これはそれでした。完璧なおかげです。理由は、 "slack-cleaner"がanacondaの環境にインストールされているが、cronは明らかに別のpython環境を使用しているため、 "slack-cleaner"を見つけることができなかったからです。生活し、学びます。 – Anton