• 締切済み

unixのシェルを自動で、キックしたい

現在のUNIXのデイリーバッチジョブの起動を、できる範囲で自動化したいのですが、 UNIX初心者の為、どうしたら良いのか、全く判りません。 《現在の流れ》 (1)windows のoutlookメールで、バッチジョブの依頼を受ける。(リクエスト項目は、対象日付と対象時間) (2)telnetでunixサーバにログインして、対象の業務のシェルの日付をパラメータで渡して、 手動でシェルをキックをする。 (3)cronで完了メールと実行ログの送出をする。 unixは、HP-UX11.0で、kシェルを使用しています。 上記のような事は、どうしたら実現できるのでしょうか?。 また、wshで、メールの解析をして、バッチジョブ依頼メールから、リクエスト項目を抽出し、 unix シェルの自動起動をする。などという事は、可能なのでしょうか?。 どなたか、詳しい方、お教え願い下さい。 よろしくお願い致します。 同じような運用の仕方をされている方、もしくはお判りの方、ぜひお教えください。

みんなの回答

  • sholmes
  • ベストアンサー率81% (89/109)
回答No.1

HP-UXは触ったことありますが、全く同じオペレーションをしたことはありません。 なのでかなり曖昧なアドバイスになってしまいますが・・・ まず、出来る出来ないで言えば出来ると思います。 もしWindows7/2008R2以降なのであれば、PowerShellの検討をおすすめします。 またWindows機にツール導入が可能なのであれば、Windowsに依存しすぎないスクリプト言語を入れとくと楽でしょう ですが、もしWindows側の環境が古く、且ついろいろツールを入れられないという事でWSHを挙げられたのであれば、個人的にはWindows側でいろいろ頑張らないほうがいいように感じます。 HP-UXでもPerl(11.00だと4系統かもしれませんが・・・)はありますし、メールデータをそのまま引き渡してUNIX側でテキスト処理走らせたほうがまだ楽かなーと。 あとHP-UXがWindows機と同じネットワークに繋がっているのであれば、そもそも一旦Windows機でメール受信させる必要もないかもしれません。

kyoko0829
質問者

お礼

貴重なご意見、有難うございました。 参考にさせて戴きます。

関連するQ&A

  • UNIXシェル内での日付計算

    UNIX(今使ってるのがHP-UX11i)上のバッチシェルで、 指定した日数分の前の日付を取得したいのですが、 何か方法はないでしょうか。 (例) 現在の日付: 20060511 指定した日数: 10(MAX値は100程度) 取得する日:20060501

  • UNIXシェル内での日付計算

    日付計算系の質問はたくさんありましたがこのタイプが 無かったんで質問させていただきます。 やりたいことは題名そのまんまなんですが、具体的に言う と、UNIX(今使ってるのがHP-UX11.0)上のバッチシェル で、前日の日付を取得したいのです。できれば中間ファ イル(一時ファイル)などを生成せずにシェル内で計算を 済ませたいのですが、何か方法はないのでしょうか。 (Ex.) 現在の日付   2002年1月1日 取得したい日付 2001年12月31日 具体的な方法とか書いてあるとさらにうれしいのですが・・・ それではよろしくお願いします。

  • UNIXシェルスクリプト

    お世話になります。 会社でUNIXシェルスクリプトを用いて残業申請自動送信メールの作成をしています。 下記のフローで作成したのですが、端末エミュレータを切るとjobが消えてしまい困っています。 バックグラウンドで実行したのですが、実行されませんでした。 回答よろしくお願いします。 at(指定時刻にメール送信)→sleep(来週の頭になるまで待つ)→goto(最初に戻る) と無限にatコマンドを週一回実行するスクリプトです。

  • unixのシェルでファイル内容を読み込む

    ど初心者です。わかりづらいかもしれませんが宜しくお願いします。 以下のような処理を行いたいと考えています。 (1) aaa.sh(シェルスクリプト)にてバッチプログラムを起動 (2)バッチでエラーの場合、結果ファイル(bbb.txt)に「1」を出力する。 (3)aaa.sh(シェルスクリプト)にて結果ファイルの内容を読み取り「1」の場合は、再度バッチプログラムを起動する。 このうち(3)の処理にて、結果ファイルの読み込み方法がわかりません。 調べた結果、以下のような処理で可能なようですが・・ while read LINE; do echo $line done < aaa.txt 読み込むのは1行なので、ループ処理にはしたくないのですが、例えば「read LINE aaa.txt」のような簡単なコマンドで、ファイルの中身を読み込むことはできないのでしょうか? 実はUNIXが初めてで、しかもスケジュールに余裕がないため焦っております。 なにぶん知識不足な故、ちんぷんかんぷんな質問かも知れませんが、よろしくお願いいたします。

  • rsh(リモートシェル)で返り値を返さない方法

    現在、2つのunixマシンで運用を行っております。 1つはコンソール、1つはバッチ系です。 コンソールには、XWindow以外入っておりません。 バッチ系には、ジョブの起動と、エラーを検知するソフトが入っております。 そこで、バッチが異常終了すると、もうひとつのコンソールに異常終了を示すウインドウを表示したいと思っております。 仕掛けとしては、バッチ系のエラーを検知するソフトにエラーが出たら、 リモートシェルでコンソールにウインドウを表示するようにしました。 そこで、問題なのが、ネットワーク異常があった場合、リモートシェル自身がうまく出来なく、リモートシェルの返り値がエラーと判断されて、永久ループに陥ってしまいました。 そこで、リモートシェルは返り値を返さず、投げっぱなしにはできないでしょうか? 宜しくお願い致します。

  • Cシェル内で自動ログアウトさせたいんです。

    今、私が作っているのは、UNIXコマンドを知らない人達に、 一時的にTera TermよりUNIX機にログインして簡単な作業を してもらう為のCシェルです。 ほとんどコマンドを知らないわけですから、なるべくなら ログイン時にそのCシェルが起動して、作業を終えたら (シェルを終了したら or シェル内部で)自動的にログアウト するような物を作りたいのです!(~Q~;)。 つまり、なるべく変な事して欲しくないと。。。言うことなのですが、 まだ私がCシェル初心者なもので、やり方が解りません。 何か良い方法がありましたらお願い致します<(__)> ちなみに、SunOS 5.6 Solarisです。

  • UNIX(Solaris9)を立ち上げたい

    未経験で入社したプログラマ見習いです。 (知識は事務レベル、ただし基本情報技術者の勉強を しており、コマンドプロンプトはさわったことが あります) 会社のPCにSolaris9とCコンパイラが入っているので、 それを使ってCとシェルコマンドの勉強がしたいのですが、 立ち上げ方が判りません。 普段はwin2000serverの画面で起動しています。 「マイコンピュータ」などから入るのでしょうか? スタートボタンのプログラムから 「Windows service for UNIX」という項目を 見つけたのですが、これは関係ありますか? ここから「コマンドシェル」に入ってみたら、 DOS窓のような画面が出てきました。 試しに「date」といれるとちゃんと日付が 返ってきました。 Cコンパイラがどこにあって、どういうプログラムが 入っているのか勉強したいのですが、 何から手をつければいいでしょうか? どなたかアドバイス頂けないでしょうか。

  • telnetの自動シェルバッチを作成したい

    UNIXは不得意のため、とても困っています。 是非、アドバイスをお願いします。m(_S_;)m えっと。windowsでいえば、ブラウザにURLを設定するようなことを UNIX上で、telnetを使って自動バッチを作成したいと思っています。 HTTP要求のURL: http:xx.xx.xx.xx:7001/TEST/test.srv?MODE=0 自分で書いてみたシェル ------------------------------------------------- sleep 2; echo ${USER_ID} sleep 1 echo ${PASSWORD} sleep 1 echo "GET /TEST/test.srv?MODE=0" sleep 1 echo "exit" | telnet ${SERVER_IP} ${WEB_POOT} ------------------------------------------------- 下記では、「ファイルもディレクトリもありません。」の エラーが出てしますます。。 でもブラウザより上記のURLを入れて実行するぶんには 正常にhtmlを返してくれます。(バッチではhtmlを返さなくても可) お手数をおかけしますが、どなたかもしアドバイス等が 御座いましたら、どうか宜しくお願い致します。

  • Telnetをログアウトしても処理を続けたい

    PC1(AIX UNIX)からPC2(Win2000 sp2)へtelnetでログインし、PC2上のバッチファイルを実行させようとしています。 一連の作業を自動化させたいため、PC1上のシェルスクリプトでバッチファイルを起動させているのですが、ログアウトするとバッチファイルのプロセスも切れてしまいます。 シェルスクリプトはsleepコマンドのため、自動的にexitがかかってしまい、長い処理や処理時間の読めないプログラムを走らせることができません。UNIX系のnohupのようなことをWindows上で行うことはできないのでしょうか? 色々と調べても情報がなかったので、あきらめかけてます。ご存じの方、またご経験のある方がいましたら教えて下さい。

  • シェルスクリプトで古いファイルの自動削除をするには?

    UNIXで以下の仕様を持つシェルスクリプトを作成しようと していますが、どうもうまくいきません。 どなたか、いい知恵を貸していただけないでしょうか? 目的: 特定のディレクトリ内にあるファイルについて、 システム日付より3日前のタイムスタンプを持つファイルを 削除する。 留意点: ・削除対象のファイルは複数存在する場合がある。 ・ファイルサイズは1件あたり 0byte-数百Mbyte となる  可能性がある。 ・ファイル名は不定。 ・スクリプトはBシェルまたはCシェルとする。 参考: ・現在使用しているOSについて  ls -l でのタイムスタンプにおける出力形式は以下のとおり  (デフォルト値?)  ・ 9月 28日 2000年    または   10月 24日 10時45分 知っている限りのコマンドを使っていろいろやってみたんですが、 結局ダメでした。 よろしくお願いします。

専門家に質問してみよう