回答編集履歴
2
曖昧な文言を修正
test
CHANGED
@@ -148,7 +148,7 @@
|
|
148
148
|
|
149
149
|
|
150
150
|
|
151
|
-
cronの設定に、`bash`の実体ファイルをフルパスで追記してください。
|
151
|
+
cronの設定に、"./sample.sh" の前に`bash`の実体ファイルをフルパスで追記してください。
|
152
152
|
|
153
153
|
例えば、以下のような感じです。
|
154
154
|
|
@@ -174,6 +174,8 @@
|
|
174
174
|
|
175
175
|
これで、シェルが正しく実行されるか、あるいはエラーメッセージがどのように変わるか確認してみてください。
|
176
176
|
|
177
|
+
|
178
|
+
|
177
179
|
---
|
178
180
|
|
179
181
|
ちなみに、当ご質問とは無関係ですが、 /var/log/syslog に
|
1
回答を追記
test
CHANGED
@@ -103,3 +103,89 @@
|
|
103
103
|
そのため、ファイルの末尾に改行がないと、最終行に記述した設定が無視されてしまいます。
|
104
104
|
|
105
105
|
`crontab -e`で開いたファイルの末尾に1つ、空行を追加して、様子を見てみてください。
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
# 2016/07/06 追記
|
110
|
+
|
111
|
+
他の回答者様へのコメントに記載したエラーメッセージが
|
112
|
+
|
113
|
+
> /bin/sh: 1: Syntax error: word unexpected (expecting ")")
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
となっていることから、cronで`/bin/sh`を実行すると、`bash`とはべつのシェル(おそらく`dash`?)が起動していると思われます。
|
118
|
+
|
119
|
+
[https://ja.wikipedia.org/wiki/Debian_Almquist_shell](https://ja.wikipedia.org/wiki/Debian_Almquist_shell)
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
上の予想が正しければ、`bash`を使用して sample.sh を起動するよう、cronに指示してやればうまく動くはずです。
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
まず、以下のコマンドを実行してください。
|
128
|
+
|
129
|
+
```sh
|
130
|
+
|
131
|
+
whereis bash
|
132
|
+
|
133
|
+
```
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
環境によって異なりますが、以下のようにいくつかのパスが表示されるはずです。
|
138
|
+
|
139
|
+
```
|
140
|
+
|
141
|
+
bash: /bin/bash /usr/share/man/man1/bash.1.gz
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
このうち`/bash`で終わるパスが、`bash`コマンドの実体となるファイルです。
|
146
|
+
|
147
|
+
(上の例の場合、`/bin/bash`です)
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
cronの設定に、`bash`の実体ファイルをフルパスで追記してください。
|
152
|
+
|
153
|
+
例えば、以下のような感じです。
|
154
|
+
|
155
|
+
##### Before
|
156
|
+
|
157
|
+
```
|
158
|
+
|
159
|
+
* * * * * cd /home/hoge/Desktop/hoge/sample; ./sample.sh
|
160
|
+
|
161
|
+
```
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
##### After
|
166
|
+
|
167
|
+
```
|
168
|
+
|
169
|
+
* * * * * cd /home/hoge/Desktop/hoge/sample; /bin/bash ./sample.sh
|
170
|
+
|
171
|
+
```
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
これで、シェルが正しく実行されるか、あるいはエラーメッセージがどのように変わるか確認してみてください。
|
176
|
+
|
177
|
+
---
|
178
|
+
|
179
|
+
ちなみに、当ご質問とは無関係ですが、 /var/log/syslog に
|
180
|
+
|
181
|
+
```
|
182
|
+
|
183
|
+
Jul 4 15:47:01 hoge cron[629]: (*system*) INSECURE MODE (group/other writable) (/etc/crontab)
|
184
|
+
|
185
|
+
```
|
186
|
+
|
187
|
+
と出力されていることから、`/etc/crontab`ファイルのグループがおかしいためにこの設定ファイルが無視されています。
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
これはこれで、別途、調査する必要があると思います。
|