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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cron

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

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

Q&A

解決済

3回答

3258閲覧

cronによるshellスクリプト実行について

akirin062

総合スコア19

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cron

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

sh

shは、UNIX系OSのシェル操作の1つであり、最も基本的なシェルのことです。

0グッド

0クリップ

投稿2020/10/25 01:35

編集2020/10/25 02:04

テキストファイルに情報を追記していくshellスクリプトを作成し、
cronで1分おきに実行するようにしました。
ログを確認したところ、cronは実行されているようですが、テキストファイルに追記されません。
他に設定があるのでしょうか?解決方法をお願いします。

shellスクリプトの内容

shell

1#!/bin/bash 2str1=$(date "+%Y%m%d%H%S") 3 4str2=$(cat /dev/urandom | tr -dc "[:alpha:]" | fold -w 10 | head -n 1) 5 6str3=$((RANDOM%+10000)) 7 8cat <<EOF >> test.text 9$str1 $str2 $str3 10EOF

cronの設定
*/5 * * * * /home/sakura/cobol_test/test.sh

crontab -lの結果
*/5 * * * * /home/sakura/cobol_test/test.sh

var/log/cronの内容
Oct 25 10:30:01 tk2-260-39672 CROND[27118]: (sakura) CMD (/home/sakura/cobol_test/test.sh)
Oct 25 10:31:01 tk2-260-39672 CROND[27163]: (sakura) CMD (/home/sakura/cobol_test/test.sh)
Oct 25 10:32:02 tk2-260-39672 CROND[27202]: (sakura) CMD (/home/sakura/cobol_test/test.sh)

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

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

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

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

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

dodox86

2020/10/25 01:58

提示されている情報だけでは正確な原因をつかむことは不可能です。crontabへはどのような登録をしたのか。crontab -l の出力、ユーザーアカウントなど詳細を質問文中に追記してください。(このコメント欄にではなく、です)
dodox86

2020/10/25 02:08

> cat <<EOF >> test.text であれば、ユーザー sakuraのホームディレクトリ /home/sakura/ 下にtest.text で保存されていませんか?
guest

回答3

0

自己解決

ありがとうございます。
dodox86さんの指摘通り、
ホームディレクトリ /home/sakura/ 下にtest.textがあり、そのファイルに追記されていました。
確認不足でした。
申し訳ありません。

投稿2020/10/25 02:14

akirin062

総合スコア19

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

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

0

単独できちんと動作するシェルスクリプトがcronから起動するとうまく動かないときはPATH絡みのことが多いです。
シェルスクリプトで使っているコマンドをすべてフルパスに書き換えれば大抵は動きますが、それも大変だし、PATH以外の環境変数を参照している場合はダメです。

「crontab 環境変数」あたりで検索すると、やりかたがいくつかヒットすると思いますので参考にしてください。

投稿2020/10/25 01:58

satocha

総合スコア336

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

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

0

Shellスクリプトのコードが提示されていないので何とも言えませんが、
プロンプトでShell実行したときは大丈夫だが、cronだと期待どおりに動かないというときは
ログインの有無による環境変数の違いが多いです。(だいたいがパスが通っていなくてコマンド実行できてない)

投稿2020/10/25 01:51

yukky1201

総合スコア2751

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問