cronでシェルスクリプトを起動してrubyスクリプトを呼ぶシステムを組んでいるのですが
どこまでシェルスクリプトにやらせればよいのか悩んでます。
ケースバイケースとは思いますが
ルールとかあれば教えてください
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
0
ケースバイケースとしか言いようが無いですが、例えば、
ケース1:Rubyスクリプトを単体でコマンドラインからも使うことがあり得る場合
コマンドラインから使うのに便利なようにRubyプログラムを書いて、それをcronから起動するためのラッパーをシェルスクリプトで書く
ケース2:コマンドラインからも使うことがあり得ないような場合
全部Rubyで書く
ケース3:一番外側の処理がRubyだと面倒だけど、シェルスクリプトだと楽な場合
そこで分ける
投稿2015/10/26 12:55
総合スコア84380
0
文字通り、ケースバイケースだと思いますが、基本的には全てシェルスクリプトで書いちゃいます。
もちろん、オブジェクト指向的な設計にした方が分かりやすく、メンテナンス性が良ければRubyを使用します。
しかし、シェルスクリプトの真の特徴を活かせるように 適切なコーディングスタイル をきちんと守れば、並列プログラミングも容易に実現できますし、メンテナンス性もそれなりに高く保てます。
コーディング上のポイントについては、ユニケージ開発手法 が非常に参考になります!
また、サーバ上のどんな作業でも、基本的には 2回実行する 作業はシェルスクリプト化します。
これはもちろん、時間を掛けてシェルスクリプトのプログラムを書く、という意味ではなく、1コマンドでは済まない作業は数分時間を掛けて ワンライナー化 するようにします。
そうすれば、同じ作業を何度でもワンタッチで実施できるようになりますし、類似の作業は既存のワンライナーをマイナーチェンジすることで使いまわせる様になります。
ある程度まとまった定形作業をスクリプト化する場合は、個々のワンライナーを順にならべ、間にエラーハンドリングの処理を入れることで、ひとまとまりの処理を自動実行可能な ツール になります。
投稿2015/10/26 22:17
総合スコア5936
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
質問があいまいで、答えにくいですが、シェル化する場合は
・人の判断が必要ない場合
・定期運用が可能な場合
・使用頻度が多い場合
・複雑な処理
普段、サーバ設計をしておりますが、よほどのレアケース以外はシェル化を行い、エラーハンドリングをすることにより、運用しやすいようにしております。
投稿2015/10/26 11:11
編集2015/10/26 11:13総合スコア144
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。