質問編集履歴

2

shellの追加

2016/08/28 18:55

投稿

twin_bird
twin_bird

スコア230

test CHANGED
File without changes
test CHANGED
@@ -91,3 +91,13 @@
91
91
  msg.send stderr if stderr?
92
92
 
93
93
  ```
94
+
95
+
96
+
97
+ 追記2:shell(hoge.sh)については以下のとおりです。
98
+
99
+ ```
100
+
101
+ logwatch --print
102
+
103
+ ```

1

コードの追加

2016/08/28 18:55

投稿

twin_bird
twin_bird

スコア230

test CHANGED
File without changes
test CHANGED
@@ -35,3 +35,59 @@
35
35
  こんな感じでかいたみたのですが、実行されていないようでどこか間違っているような気がします。
36
36
 
37
37
  アドバイスお願い致します。。
38
+
39
+
40
+
41
+ 追記: coffee scriptを書き換えてみました。
42
+
43
+ ```
44
+
45
+ cron = require('cron').CronJob
46
+
47
+
48
+
49
+ module.exports = (robot) ->
50
+
51
+ new cron '*/1 * * * *', () =>
52
+
53
+ @exec = require('child_process').exec
54
+
55
+ command = "/hoge_hubot/scripts/shell/hoge.sh"
56
+
57
+ @exec command, (error, stdout, stderr) ->
58
+
59
+ robot.send {room: "#general"}, "stdout"
60
+
61
+ , null, true, "Asia/Tokyo"
62
+
63
+ ```
64
+
65
+
66
+
67
+ これでshellの実行結果がslackに投稿されれば良いのですが、stdoutの部分が展開されず、文字列として表示されてしまいます。。。
68
+
69
+ (error,stdout,stderr)の部分がどういうものなのか理解しきれていないのですが、以下のようなコードの場合は動作するので、参考にしてみたもののも上手くいきません_| ̄|○
70
+
71
+
72
+
73
+ ```
74
+
75
+ module.exports = (robot) ->
76
+
77
+ robot.respond /artisan_up/, (msg) ->
78
+
79
+ @exec = require('child_process').exec
80
+
81
+ command = "/hoge_hubot/scripts/shell/hoge.sh"
82
+
83
+ msg.send "Command: #{command}"
84
+
85
+ @exec command, (error, stdout, stderr) ->
86
+
87
+ msg.send error if error?
88
+
89
+ msg.send stdout if stdout?
90
+
91
+ msg.send stderr if stderr?
92
+
93
+ ```