Crontabでどのようなコマンドを使用するには?

Crontabでどのようなコマンドを使用するには?

crontabで通常のユーザーとしてこのスクリプトを実行したいと思います。

#!/usr/bin/env bash

PIDFILE=wp-content/uploads/sphinx/var/log/searchd.pid


if ! test -f ${PIDFILE} || ! kill -s 0 `cat ${PIDFILE}`; then
    `which searchd` --config /home/user/www/wordpress-page/wp-content/uploads/sphinx/sphinx.conf
fi

メモリが1GB(Webfaction)を超えると、共有サーバーはすべてのデーモンを終了するため、Sphinx Searchデーモンを再実行します。

CLIコマンドで手動でスクリプトを呼び出すとうまくいきますが、crontabに追加するとcrontab -e

which: no searchd in (/usr/bin:/bin)
/home/user/www/wordpress-page/run-searchd.sh: line 8: --config: command not found

簡単に言えば、rootレベルを検索しますが、通常のユーザーとしてsshを介してログインしたときに自分が呼び出すように機能したいと思います。どうすればいいですか?

ベストアンサー1

$PATHこれはシェルの外部で行うためですcrontab

command -v searchd | xargs dirname

このコマンドはシステムのディレクトリを返すか、searchd対話型シェルにディレクトリがない場合はエラーを返します。次に、実行するスクリプトの上部で次の操作を行います。searchd$PATHcrontab

 PATH=<directory_from_above_command>:$PATH

searchdまたは代わりにフルパスを使用してくださいwhich searchd

whichどのように機能するかを完全に理解するには、以下を読んでください。「which」を使わないのはなぜですか?それでは何を使うべきですか?

おすすめ記事