質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

Q&A

解決済

2回答

2612閲覧

cronで指定ディレクトリで操作ができない

退会済みユーザー

退会済みユーザー

総合スコア0

cron

cronは、Unix系OS上でデーモンプロセスとして動作する、スクリプトの自動実行が可能なジョブスケジューラです。

0グッド

0クリップ

投稿2019/08/17 10:43

実際にやりたい事は

〜分以上アクセスのないセッションを削除する
http://yoshifumi.hateblo.jp/entry/20060606/1149553602
になります

rmをいきなりするのは怖いので、一旦指定ディレクトリにちゃんと移動ができているかテストをしているのですが
*/1 * * * * cd /var/lib/php/session/; touch aaa.txt;
とした場合ユーザーのホームディレクトリにaaa.txtができてしまいます

デフォルトで「crontabを実行したユーザーのホームディレクトリがスクリプト実行の起点になる」とあったのでcdをしているのですがなぜsession下にaaa.txtが作成されないのでしょうか?

sessionに書き込みの権限は持っています
使用環境はcentos7になります

よろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

別の方が仰る通り、現象的には「cd /var/lib/php/session/」が失敗していると思います。

cronからシェルスクリプトをキックする形へ変更し、cd実行後にpwdした結果を「/tmp/log.txt」へリダイレクトする等で実行結果を確認し、フォルダのアクセス権問題か、cronの実行権限問題か切り分けする方法が一つ。

調べる時間が取れない等の事由があれば、さっくりとroot相当の権限を持ったユーザか、rootで実行する方法が一つ。

などでしょうか…

投稿2019/08/17 11:57

BUN-G

総合スコア55

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/17 14:05

pwdをしてリダイレクトをしてみた所/home/ユーザー名となっていたのですがこれからフォルダのアクセス権問題か、cronの実行権限問題かはどのようにしてわかるのでしょうか?
BUN-G

2019/08/17 16:54

「 cd /var/lib/php/session/; touch aaa.txt;」の部分を、「 touch /var/lib/php/session/aaa.txt;」として正常実行できれば、フォルダへの移行権限が無いと思います。 シェルレベルで「/var/lib/php/session」に対して、実行したいユーザでTOPフォルダから1段階毎に「cd」できますか?
退会済みユーザー

退会済みユーザー

2019/08/17 17:29

すいません実行権限の問題でした セッションを削除するので書き込み権限があれば大丈夫なのかと思っておりました 初歩的なミスで申し訳ないです ご回答ありがとうございます
guest

0

ベストアンサー

「cd /var/lib/php/session/」のパスは合っていますか?
可能性の一つとして、「cd /var/lib/php/session/」が失敗した場合、「touch aaa.txt」のみが実行されるため「ユーザーのホームディレクトリにaaa.txtができてしまいます」となっているのではないでしょうか?

投稿2019/08/17 10:53

meg_

総合スコア10579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/08/17 10:55

ご回答ありがとうございます そこは確認しておりましたので間違いはないと思います URLの方も同じパスですしデフォルトでこのパスになっています filezillaを使用しているのですが/var/lib/php/session/以下に削除したい数百万のファイルがあったのを確認しています
meg_

2019/08/17 11:04

command1 && command2 としてみてはどうでしょうか? command1が正常終了した場合のみcommand2を実行するはずです。
退会済みユーザー

退会済みユーザー

2019/08/17 14:04

案の定ですが動作はいたしませんでした パスが間違っていないとすれば他に何が原因と考えれそうなのでしょうか?
meg_

2019/08/17 14:15

実行権限は付与されていますか? 詳細はエラーログを出力して確認ください。 command 2> /path/error.log
meg_

2019/08/17 14:28

書き込み権限だけでは「cd」出来ないかと。 実行権限を与えたくないのであれば、フルパスでファイル作成するのでは駄目なのですか?
退会済みユーザー

退会済みユーザー

2019/08/17 17:23

すいません実行権限の問題でした セッションを削除するので書き込み権限があれば大丈夫なのかと思っておりました 初歩的なミスで申し訳ないです ご回答ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問