68user's page 掲示板

Prev< No. 58〜76> Next  [最新発言に戻る] [過去ログ一覧]
No. 58 # ROL [E-mail] 1998/12/29 (火) 00:56
&init_work; # ディレクトリ作成 & tarball展開
exit;
としてテストを実行してみたところ、サーバーからエラーがかえってきています。
その状態では確かにtest00はできてます。
なので&init_work;の後半部分
if ( -f "$log_dir/$date.tgz" ){
    system("mkdir -p $main_dir/");
# print "extract $log_dir/$date.tgz\n";
# system("$tar zxf $log_dir/$date.tgz -C $main_dir");
        }
が問題なんでしょうね…多分。
で、ここの
if ( -f "$log_dir/$date.tgz" ){
の-fが何なのかが全然分かってないので、手がつけられないんですが…

No. 59 # 68user 1998/12/31 (木) 18:02
> とにかく日立が関係してるようです。

どうもです。早速更新しました。

> が問題なんでしょうね…多分。

事前に ~/test00 と ~/public_html/test-log をmkdirして
おけば大丈夫だとは思うんですが、どうでしょう。

> の-fが何なのかが全然分かってないので

本買いましょ〜。

ファイルが存在するかどうかのチェックです。/hoge/file
というファイルが存在すれば、-f "/hoge/file" は真に
なります。

# 他には
# -f ファイルがあるか
# -d ディレクトリがあるか
# -r 読み込み権限があるか
# てな感じです。あと20個くらいはあったはず。

    既にその日のアーカイブが存在する
→少し前にg2を実行した
→いちいち全部落とすのは時間がかかる
→事前に展開しておけば、時間の節約

というわけで、動作チェックをしている場合は
    # if ( -f "$main_dir/$1" ){ next; }
の行のコメントをはずすと、既にあるファイルは落とさなく
なるはずです。


今日の分をもちまして過去ログ作成は終了しますので、
あとはROLさんにまかせたっ。ではではでは。

No. 60 # ROL [E-mail] 1999/01/06 (水) 12:55
すんません、お師さん。原因はそれじゃないみたいです。
ちょこちょこかえて、「$base_dir/www2.sega.co.jp/bbs/t/test/」ディレクトリが出来るとこまでは確認しましたが、
「test00」内に「sega2.def」と「sega2.def~」が出来てます。
で、$base_dir/www2.sega.co.jp/bbs/t/test/内に何もダウンロードされてません。
「sega2.def」の中身を見ると
「reportlevel 2
start http://www2.sega.co.jp/bbs/t/test/1_index.shtml
>following lines are automatically generated by httpdown
E http://www2.sega.co.jp/bbs/t/test/1_index.shtml
ってなってます。
これはつまりHTTPDOWNが巧く働いてないって事ですよね?
これはなんでなのかわかんないっす。
もういいかげん、いやになられたとは思いますが、すみませんが
ご教授くださいませ。

No. 61 # 68user 1999/01/06 (水) 17:51
sega2.defの内容を
    level 1
    start http://www2.sega.co.jp/bbs/t/test/1_index.shtml
にして試してみてください。
# コマンドラインから % httpdown sega2.def

それでもダメなら
    level 1
    httpproxy http://hoge.fuga:8080/
    start http://www2.sega.co.jp/bbs/t/test/1_index.shtml
と、適切なproxyを設定してやるとどうなりますか?

No. 62 # ROL [E-mail] 1999/01/06 (水) 18:46
追加
それぞれ出来たsega.defの内容です。
sega2.def~
「level 1
httpproxy http://www.cs.gunma-u.ac.jp:8080/
reportlevel 2
start http://www2.sega.co.jp/bbs/t/test/1_index.shtml

sega2.def
「level 1
httpproxy http://www.cs.gunma-u.ac.jp:8080/
reportlevel 2
start http://www2.sega.co.jp/bbs/t/test/1_index.shtml
>following lines are automatically generated by httpdown
E http://www2.sega.co.jp/bbs/t/test/1_index.shtml
実はproxyを2、3変えて実験してみたんですが、
同じ内容しか出来ないのでオリジナルの
g2の「httpproxy http://www.cs.gunma-u.ac.jp:8080/」に
してみた結果がこれです。
やっぱり、CGIを動かすサーバーのPROXYを設定したほうがよいのでしょうか?HTTPDOWNには…?

No. 63 # 68user 1999/01/06 (水) 19:55
えっと、www.cs.gunma-uのproxyには、外部の人は接続できないはずです。
いつも使っているproxyを設定してください。

もしサーバ上から
    % telnet www.sega.co.jp 80
    GET / HTTP/1.0(リターン)
    (もいっかいリターン)
として、HTMLが出力されるならproxyは必要ないはずですが、
もしダメなら適切なproxyを設定する必要があります
(外部のポート80宛のパケットは通さない設定なのでしょう)

No. 64 # ROL [E-mail] 1999/01/07 (木) 18:05
    % telnet www.sega.co.jp 80
   GET / HTTP/1.0(リターン)
   (もいっかいリターン)
実行したらHTMLが出力されました!!!
ってことで、変数の定義の所の $proxy =以下と
&download内の
        print OUT "level 1\n";
        print OUT "httpproxy $proxy\n";
の2行を削除して、やってみます!!!

No. 65 # ケースケ [URL] 1999/01/07 (木) 21:55
はじめまして。
えっと、学校の端末でzipを解凍することはできないんですか?
そもそもunixではzipはだめなのですか?
おしえてください

No. 66 # 68user 1999/01/08 (金) 03:04
ROLさん:
    print OUT "level 1\n";
は削らない方がいいでしょう。これはリンクを1段階たどる、ということを
表しています。

ケースケさん:
UNIXでZIPを扱えるアーカイバにはunzipというのがあります。
# ZIP形式は普段使わないのでよくわかりませんが、
# unzipは展開専用、zipは圧縮専用かなぁ?

これはflute.cs.gunma-u.ac.jpで、ってことですよね?
どうやらインストールされてないようですから、管理者にお願いしたり
ソースからコンパイルする方がいいんでしょうけど、それがめんどくさいなら
    ( find / -name unzip >/dev/tty ) >& /dev/null
などで探せます。数分待てばいくつか表示されるので、お好きな
ものを使うといいでしょう。

No. 67 # ROL [E-mail] 1999/01/10 (日) 23:30
やっと…、やっとDLまではこぎつけました、はぁ長かった…
まぁまだまだ問題は山済み状態なんですが、一番大きな山はこえたのだと思ってます。

で、残された、私ではなんともならない問題…
そう、自動化です。
以前、某氏から触りの部分だけ、聞いたはずなんですか
さっぱり忘れてます。
なので、どういうファイル名のファイルか、
そしてそのファイルの中身でどういう指事をすれば
任意のCGIを任意の時間に自動的に動かすことができるのか…
これを御教授ください。

No. 68 # 68user 1999/01/11 (月) 01:04
まずは
    http://X68000.startshop.co.jp/~68user/unix/prgmemo.html#crontab
をどうぞ。

~/.crontabにいつどんなプログラムを実行するか書いてください。
毎日6時30分に実行するなら、
    30 6 * * * command
です。g2をどこに置いたかは知りませんが、ホームディレクトリからの
ディレクトリ相対指定で動くはずです。例えば
    30 6 * * * bbs/g2
など。わからなければ
    30 6 * * * /home/user/bbs/g2
とフルパスで書いてください。

~/.crontabに書いたら、
    % crontab ~/.crontab
で登録されます。
    % crontab -l
として
    30 6 * * * bbs/g2
と表示されればOKです。

しかしその前にきちんと動くかどうか、簡単なテストをしてください。
    #!/usr/local/bin/perl
    print "test OK!\n";
というスクリプトを書いて、chmod +x して、そのとき22:55なら
数分後、例えば23:00に実行されるようにしてください。~/.crontabに
    0 23 * * * script
と書いて、
    % crontab ~/.crontab
とします。
    % crontab -l
    0 23 * * * script
となれば登録は正常に行われています。で、23:00になったら、test OK!
という内容のメールが送られてきたらいいわけです。

crontabについて さらに詳しいことは
    http://www.jp.freebsd.org/cgi-bin/yoyaku/mroff.cgi?sect=5&bgcolor=%23ffffff&cmd=&lc=1&subdir=man&dir=jpman-2.2.8%2Fman&subdir=man&man=crontab
をどうぞ。

わからなければまた聞いてください。

> 任意のCGIを任意の時間に自動的に動かすことができるのか…

細かいことですが、webサーバ経由で実行されるプログラムを
CGIと言います(ほんとは、その仕組み自体がCGIなんですけど)。

今回はwebサーバは関与しませんから、プログラムとか
スクリプトと言った方がいいですね。

No. 69 # ROL [E-mail] 1999/01/11 (月) 16:07
お師さん、いつもすみませんです。
お教えいただいた crontab とその説明ってFreeBSDのですよね。
BIGのサーバーは Linux 2.0.36で動いてるようで
まず「~/.crontab」って名前でファイルがおけなかったので
適当に名前を変えて、% crontab script
を実行してみましたが
「bash: /usr/bin/crontab: Permission denied」っていわれて、ダメです。
んで、「whitch crontab」で crontabコマンドを探すと
「whitch: command not found」っていわれちゃいます。
どないしたらよいのでしょうか?

あぁ、もうまったく手が出ない世界にアシを突っ込んでるな…

No. 70 # 68user 1999/01/11 (月) 18:02
    僕の場合.crontabというファイル名にしているだけで、
他のファイル名でも全く構いません。

> 「whitch crontab」で crontabコマンドを探すと

whichですよね。whitchじゃなくて。

> bash: /usr/bin/crontab: Permission denied

ん〜、とりあえず、
    % ls -l `where crontab` (「'」ではなく「`」で囲んでください)

    % ls -l `which crontab`
の結果を教えてください。あと、
    % id
の結果も。もしかしたらbigではcronは使えないように
なってるのかもしれません。その場合は、管理者に
お願いするしかないです。

No. 71 # ROL@胃潰瘍で仕事中に何やってんだおまえ…(笑) [E-mail] 1999/01/11 (月) 18:10
え、それぞれの結果です
ls -l `where crontab`
bash: where: command not found
total 1
lrwxrwxrwx 1 root root 22 Oct 30 16:29 ftp -> /home/ftp/pub/usr8
/rol/
drwxr-xr-x 5 rol users8 1024 Jan 10 18:08 html/

ls -l `which crontab`
/bin/ls: which:: No such file or directory
/bin/ls: no: No such file or directory
/bin/ls: crontab: No such file or directory
/bin/ls: in: No such file or directory
/bin/ls: (/bin:/usr/bin:/usr/local/bin:/usr/X11/bin:/usr/andrew/bin:/usr/openwin
/bin:/usr/games:.): No such file or directory

id
uid=14127(rol) gid=107(users8) groups=107(users8)

てな所ですが、どうなるでしょ?

No. 72 # 68user 1999/01/11 (月) 18:34
もいっかい。
    % ls -l /usr/bin/crontab
でお願いします。

No. 73 # ROL [E-mail] 1999/01/11 (月) 18:43
ls -l /usr/bin/crontab
-rwx------ 1 root bin 9008 Aug 24 1997 /usr/bin/crontab*

って結果です。
ってこれって、オーナーしか動かせないって事…(涙)

No. 74 # 68user 1999/01/11 (月) 19:30
その通りです。管理者にお願いしてみましょう。その結果ダメだと
言われたら残念ながらcronは不可、ということになります。
# ソース持ってってコンパイルとか…したいですか?

No. 75 # ROL [E-mail] 1999/01/12 (火) 15:29
だ、だめです、お師さん
>自動起動系のものはサーバーの保守の関係上、
>いかなる理由があろうとも一切禁止です。
だそうです(涙)

MacでAppleScriptで毎日サーバーにTelnet接続して
スクリプト起動させるようにする…しかないか?
(出来るかどうかは解らんけど…)

No. 76 # 68user 1999/01/13 (水) 02:13
うーん、仕方がないと言えば仕方がないですね。管理者が
そういう方針を取ることは理解できます。

結局は6:30に起動するプロセスがあれば、その中で
g2を実行すればいいわけです。内部にきっかけとなる
プロセスを用意することができないなら、外部から
呼ぶという手もあります。AppleScriptも一つの手ですね。

他には
・6:30に自動的にbigの中のあるwebを取得するように
    して、その中でCGIを動かしておく。そのCGIの中で
    g2を実行(CGIは普通nobody権限で動くので、そこら
    へんに問題あり)。
・6:30に自動的にbigにメールを送る。.forwardに
    メールが届くとあるプログラムが起動するように
    しておいて、現在時刻が6:30付近ならg2を実行
とかとか。

Prev< No. 58〜76> Next  [最新発言に戻る] [過去ログ一覧]