Unixでjobを順序づけて流すには?

このQ&Aのポイント
  • Unix系のOSで、jobを順序づけて流す方法を教えてください。
  • job-1を流し、job-1が終了したらjob-2とjob-3を並列に走らせ、その両方が終わったらjob-4を流す方法について教えてください。
  • job-1, job-2, job-3, job-4はlinux上で動作するperl/tcl scriptであり、job-2とjob-3はjob-1の作成したファイルを入力として使用し、job-4はjob-2とjob-3の作成したファイルを入力として使用します。
回答を見る
  • ベストアンサー

Unixでjobを順序づけて流すには?

Unix系のOSで、jobを順序づけて流すにはどのようにしたらいいのでしょうか? 例えば、job-1を流し、job-1が終了したらjob-2とjob-3を並列に走らせ、そのどちらも終わったらjob-4を流す、ということをしたいのです。ここでjob-1,2,...はlinux上で動く社内で開発されたperl/tcl scriptです。ただ単にjob-1,2,3を順番に流すのならば、shell上で、 job-1; job-2; job-3 あるいは job-1 && job-2 && job-3 とタイプすればいいのですが、質問している例ですと、「job-2とjob-3を並列に走らせ」という点と、「job-2, job-3が両方終わったらjob-4を流す」というところをどうすればいいのかわからないのです。こうさせたい理由は、job-2,3はどちらもjob-1の作ったファイルを入力として使い、job-4はjob-2とjob-3の作ったファイルを入力として使うからです。shell scriptを使うとできるのかなと想像するのですが、わからないので、教えていただけたらありがたいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#96023
noname#96023
回答No.2

#1です スクリプトだけで実行するには job-1 job-2 & job-3 & wait job-4 バックグランドプロセスを使いましたが、エラー処理とかが困難なのであまり好きでないです

Echikko
質問者

お礼

どうもありがとうございます。これでやってみようと思います。

その他の回答 (1)

noname#96023
noname#96023
回答No.1

有償でよいなら 日立のJP1/AJS2が実績が豊富です http://www.hitachi.co.jp/Prod/comp/soft1/download/catalog/ca/ca552.pdf 私は使ったことがないですけどオープンソースでこんなのもあります ジョブ管理を見てください http://www.hinemos.info/hinemos/function.php

Echikko
質問者

お礼

私としましては既存のunixの仕組みを使ってやってみようと考えていますが、ご助言どうもありがとうございました。

関連するQ&A

  • LINUX(UNIX)

    Winはそこそこ得意です。 LINUXは基本的なコマンドが使える程度です。 1.現在シェルを勉強中ですが実務ではどのようなスクリプトを使っているのでしょうか? いいサンプルなどありまか? 2.apache,sendmail,sambaなど色々ありますが、 覚える順番で効果的なものとかあるのでしょうか? 重要(よく使うもの)順とか・・・ 3、Linux(UNIX)でいい書籍を探しているのですが なかなかこれというものがありません。 いいものがあれば教えてください。 (できればWEBも) 4.その他ご意見・アドバイス等 宜しくお願いします。

  • ログの集計で

    ログの集計で困っております。 そのログというのがジョブの開始時刻と終了時刻が別々の行に出力されているもので、 このログをジョブごとに開始と終了時刻を別々の行から取得し、出力結果は1行に1ジョブで出したいと考えています。 ログがUNIXのログなので、当初はshellスクリプトでと思っていたのですが、 shellだとログを何度も先頭から読み込む形となり、perlで可能ではないかと思い、質問させていただきました。 perlはあまり詳しくはないですが、よろしくお願いいたします。 元のログイメージ ~~~ここから~~~ START 08:00:00 Job001 START 08:05:00 job002 END 08:07:01 job001 START 08:08:00 job003 END 08:10:00 job002 : ~~~ここまで~~~ 出力イメージ ~~~ここから~~~ job001 08:00:00 - 08:07:01 job002 08:05:00 - 08:10:00 : ~~~ここまで~~~

    • ベストアンサー
    • Perl
  • UNIXには直接ファイル操作コマンドありますか?

    本当に困ってます(T_T) UNIXのShell Scriptでテキストファイルの一部(何行か)を削除したいです。リダイレクト機能とか使わないで、直接ファイルから削除することはできますか? UNIXって直接ファイル編集するコマンド聞いたことないですが、そういうコマンドありますか?

  • perl から unix コマンドを入力する方法

    perl から unix コマンドを入力するには、どのようにしたらよいのでしょうか。 具体的には、フォームから受け取った文字列を、useradd に渡して、ユーザーの追加をしたいのです。 perlスクリプトの所有者はrootで、属性はsetuid(4755)にしています。

    • ベストアンサー
    • Perl
  • dos2unix(コード変換)をしなくてもも済むLinuxの設定

    RedHat Linux9でWebサーバーをつくり、Perlを使ったCGIプログラムもアップしています。しかし、CGIプログラムはWindowsで作成し、Linuxにアップしているので、そのままだとコードが違い表示されないので、 dos2unix < DOS_FILE >UNIX_FILE とLinux側でやってコードを変換しています。 これをいちいちやらないようにするためにはどうすれば良いのでしょうか。 何かをLinuxにインストールするなどしたら大丈夫になりますか?

  • Linux?UNIX?ぜひアドバイスをお願いします。

    サーバー専用マシンを導入したいと考えています。 導入目的は、 ・Perlスクリプト ・MySQLサーバー ・Apache2サーバー ・Xmailサーバー の動作検証&試験運用です。(とりあえず全て同一ハードウェア上で動作させる事を考えています。) インターネット上に非商用サイトとして公開予定です。 私はWindows上でPerlスクリプト、MySQL、Apache2を運用した事はあるのですが、 UNIXの世界についてほとんど知識がありません。 しかし今回は、安定性・安全面・コスト面からUNIX系OSで運用したいと考えております。 質問がいくつかあります。ざっくりとした回答で結構ですので是非ご指導下さい。 UNIX系OSという事で、UNIXとLinuxとを比較検討しています。 (それぞれの亜種については、”そういうものがあるらしい”程度に理解しています。) ・どちらも基本的に無料のOSなのでしょうか。 ・これらのOSはPC/AT互換機上で動作するのでしょうか。 ・LinuxとUNIXの差(性能的・機能的な面で)はどのようなものでしょうか。 ・Windowsに慣れた私が移行しやすいOSはどちらでしょうか。また、どんなバージョンが良いのでしょうか。 ・あるパフォーマンスを達成するのに、ハードウェアのコストを抑えられるのはどちらでしょうか。 ・初心者向けにオススメのサイトをご存知でしたら是非ご紹介下さい。 無知により質問自体がおかしな事もあるかと思います(指摘して頂けると幸いです。)が、 ご指導下さいますようお願いいたします。

  • プログラム初心者です。unix上でのpythonについて

    unix環境でpythonを動かしているんですが、pythonの実行は python スクリプトファイル名.py でRETURNを押せばできるのはわかっているのですが、pythonを取り除いてスクリプトファイル名だけの入力で実行するようにしたいんです。 誰かご教授願えませんか?

  • Linux Unix の仕事をやりたい

    こんばんは。 当方テクサポ、開発含め5年ほどIT業界におりますが Windows Server環境や言語が中心でLinux、 Unix の 案件に入るチャンスがありませんでした。 Linux Unixの案件、というよりはOSとしてのコアな 管理知識(シェルとかチューニングとか)、ネットワーク を身につけておきたいと考えています。 ※現在31歳でネットワークの仕事は未経験です となるとどのような職種を目指すのが良いのでしょうか?。 1.ネットワークエンジニア  (ルータや機器操作とかのイメージが強いのですが・・) 2.社内SE 3.インフラ担当 などが思い浮かびますが・・・ 未経験からそういった教育して職を紹介するスクールが あるのでそれも考えてみようかな。。と思っています。

  • PostgresSQLにPerlをインストールしようとすると′競合'していますというエラーが。。。

    始めて投稿させていただきます。 新しい会社に入社したら何故かPostgresSQLにPerlを使えるようにすることになりました。コンピュターとは今まで無縁でしたので、基本的なことを聞くことになるかもしれませんが、よろしければ教えてください!! Linux ベースのSQLにPerlをインストールしようとすると、 ファイル /usr/share/man/mann/while.n.gz (パッケージ tcl-8.3.5-88 から)は、パッケージ tcl-8.4.6-0vl1からのファイルと競合しています。 というメッセージが連なって出て行きます。 なるほど パッケージtcl-8.4.6-0vl1 からのファイルを消せばいいのかなと find / -name tcl-8.4* コマンドをうつと、 そのようなデクトリやファイルはありません とかえってきます。それならばと locate tcl-8.4* コマンドで探しますが、doc しか見付かりません! どうすればいいのか、何か良い案があれば教えていただきたいです。 突然で申し訳ないですが、よろしくお願いいたします。

  • cronジョブ

    cronの実行時間は、/var/spool/corn/ユーザ のファイルで 時間が記述されているので、実行される時間はわかるのですが、 cronで、ある1つのシェルスクリプトが起動した時間から終了までかかった時間を知りたいのです。 (timeコマンド、メール送信による判断は無しでお願いします。) linuxのどこかのログファイルに、cronのシェル1つ1つのジョブの終了時間が記述されている ファイルはないでしょうか?(可能であれば、実行時間もわかるとよいのですが。) ご教授お願いします。