回答編集履歴
2
曖昧な文言を修正
answer
CHANGED
@@ -73,7 +73,7 @@
|
|
73
73
|
このうち`/bash`で終わるパスが、`bash`コマンドの実体となるファイルです。
|
74
74
|
(上の例の場合、`/bin/bash`です)
|
75
75
|
|
76
|
-
cronの設定に、`bash`の実体ファイルをフルパスで追記してください。
|
76
|
+
cronの設定に、"./sample.sh" の前に`bash`の実体ファイルをフルパスで追記してください。
|
77
77
|
例えば、以下のような感じです。
|
78
78
|
##### Before
|
79
79
|
```
|
@@ -86,6 +86,7 @@
|
|
86
86
|
```
|
87
87
|
|
88
88
|
これで、シェルが正しく実行されるか、あるいはエラーメッセージがどのように変わるか確認してみてください。
|
89
|
+
|
89
90
|
---
|
90
91
|
ちなみに、当ご質問とは無関係ですが、 /var/log/syslog に
|
91
92
|
```
|
1
回答を追記
answer
CHANGED
@@ -50,4 +50,47 @@
|
|
50
50
|
or by the shell specified in the SHELL variable of the cronfile.
|
51
51
|
|
52
52
|
そのため、ファイルの末尾に改行がないと、最終行に記述した設定が無視されてしまいます。
|
53
|
-
`crontab -e`で開いたファイルの末尾に1つ、空行を追加して、様子を見てみてください。
|
53
|
+
`crontab -e`で開いたファイルの末尾に1つ、空行を追加して、様子を見てみてください。
|
54
|
+
|
55
|
+
# 2016/07/06 追記
|
56
|
+
他の回答者様へのコメントに記載したエラーメッセージが
|
57
|
+
> /bin/sh: 1: Syntax error: word unexpected (expecting ")")
|
58
|
+
|
59
|
+
となっていることから、cronで`/bin/sh`を実行すると、`bash`とはべつのシェル(おそらく`dash`?)が起動していると思われます。
|
60
|
+
[https://ja.wikipedia.org/wiki/Debian_Almquist_shell](https://ja.wikipedia.org/wiki/Debian_Almquist_shell)
|
61
|
+
|
62
|
+
上の予想が正しければ、`bash`を使用して sample.sh を起動するよう、cronに指示してやればうまく動くはずです。
|
63
|
+
|
64
|
+
まず、以下のコマンドを実行してください。
|
65
|
+
```sh
|
66
|
+
whereis bash
|
67
|
+
```
|
68
|
+
|
69
|
+
環境によって異なりますが、以下のようにいくつかのパスが表示されるはずです。
|
70
|
+
```
|
71
|
+
bash: /bin/bash /usr/share/man/man1/bash.1.gz
|
72
|
+
```
|
73
|
+
このうち`/bash`で終わるパスが、`bash`コマンドの実体となるファイルです。
|
74
|
+
(上の例の場合、`/bin/bash`です)
|
75
|
+
|
76
|
+
cronの設定に、`bash`の実体ファイルをフルパスで追記してください。
|
77
|
+
例えば、以下のような感じです。
|
78
|
+
##### Before
|
79
|
+
```
|
80
|
+
* * * * * cd /home/hoge/Desktop/hoge/sample; ./sample.sh
|
81
|
+
```
|
82
|
+
|
83
|
+
##### After
|
84
|
+
```
|
85
|
+
* * * * * cd /home/hoge/Desktop/hoge/sample; /bin/bash ./sample.sh
|
86
|
+
```
|
87
|
+
|
88
|
+
これで、シェルが正しく実行されるか、あるいはエラーメッセージがどのように変わるか確認してみてください。
|
89
|
+
---
|
90
|
+
ちなみに、当ご質問とは無関係ですが、 /var/log/syslog に
|
91
|
+
```
|
92
|
+
Jul 4 15:47:01 hoge cron[629]: (*system*) INSECURE MODE (group/other writable) (/etc/crontab)
|
93
|
+
```
|
94
|
+
と出力されていることから、`/etc/crontab`ファイルのグループがおかしいためにこの設定ファイルが無視されています。
|
95
|
+
|
96
|
+
これはこれで、別途、調査する必要があると思います。
|