もしご存知でしたら教えてください。 例) temp/aaa/bbb/ccc cccディレクトリの中に 111 222 333 と3つのファイルがあるとします。 その時に cccディレクトリに行き 「ls」コマンドを打つと 111 222 333 と表示されると思いますが この表示を以下のようにフルパスにしたい。 temp/aaa/bbb/ccc/111 temp/aaa/bbb/ccc/222 temp/aaa/bbb/ccc/333 というのが質問です。 もしご存知でしたらご教授をお願いします。 以上 よろしくお願いします。 |
>>3205 teru rsyncというコマンドがあるそうです。 http://www.turbolinux.co.jp/knowledge/public/178.html >>3206 awa ls | perl -nle "print \"$PWD/\$_\";" 一応動きます。 #1文字目が'/'なのをフルパスというのでは? |
分かる人にとっては、下らない質問かもしれませんがお分かりでしたら お願いします。あと、私はperlは全然分かりません。。。 perlで実行した内容結果がindex.htmlというHTMLファイルで出力されるの ですが、それをcronで決まった時間で実行しています。そして、その出力さ れたファイルをftpでアップしたいと考えています。しかし、以下のように cronを書くと駄目でした。 20,50 0-23/2 * * * perl hoge.pl | ftp -n < ftp.up どう駄目かというと、説明する必要ないかもしれないのですが、ftp上に置 かれるindex.htmlファイルが最新のものではなく、その前の時間のファイル になってしまうのです。(0時50分に更新すると、ファイルの時間は0時20分 のものになってしまうということです。)原因は明確的で、perlが実行され 出力される前のファイルをftpでアップしている事、にあるのは分かってい ます。ただ、その解決方法がわかりません。 perlのファイルを書き換えないと駄目なんでしょうか…。それとも、別の 方法があるのでしょうか? |
>>3204 NPK > そういうリスクがあるので自分で治せない場合はやばいっすよ〜 ごもっともです。精進します。 >>3205 teru もしシェルスクリプトでやるのであれば test(1) を使って if [ "$fromdir/file1" -nt "$todir/file1" ]; then cp -f $fromdir/file1 $todir/file1 fi など。 >>3208 Phantom > perl hoge.pl | ftp -n < ftp.up perl と ftp を同時に実行しているので、perl が書き換える 前に ftp で put しているのでしょう。 そもそも % command1 | command2 < file というのはおかしいです。command2 の標準入力に渡したいのは、 command1 の出力なのか、あるいは file なのかが不明確だから です。sh 系だとなぜかエラーにならないようですが、csh 系だと Ambiguous input redirect. と怒られます。 というわけで、 perl hoge.pl ; ftp -n < ftp.up でしょう。 もし hoge.pl が - 正常終了時には 0 を返す (exit(0)) - 異常終了時には 1 以上を返す という UNIX コマンドの一般的なルールに従っていて、hoge.pl が 異常終了した場合には ftp を実行したくないのであれば、 perl hoge.pl && ftp -n < ftp.up の方をお勧めします。 |
>>3209 68user > perl hoge.pl && ftp -n < ftp.up これで、思い通りに出来ました!有難う御座いました。 凄く単純なことにミスをしていたんですね。お恥ずかしい。 sh 系でもエラーはいて欲しいと思いました。 |
はじめまして。 マシン:HITACHI3050 OS:HI-UX のマシンのIPアドレスを変更したいのですが、 Hostsファイルの変更だけで大丈夫でしょうか? HP-UXのように、samコマンドみたいなものがあるのでしょうか? よろしくお願いします。 |
>>3211 11SE HI-UX も HP-UX もさわったことはないのでわかりませんが、一般的な UNIX なら /etc/hosts は、ただの IP アドレスとホスト名のマッピングを 決めるファイルです。 /etc/hosts はマシン (正確にはインタフェース) の IP アドレスを決める ファイルではないので、何かしらのファイルを変更しないといけないでしょう。 管理コマンドを探すか、 # find /etc -type f | xargs fgrep 10.0.0.1 などでどのファイルに何が書かれているのか探しましょう。 |
はじめまして最近Laboの管理者にはじめてなった伊藤と申すものです。 まず、状況から説明したいと思います。先日Laboの電気工事のため停電があり、WS(ワークステーション)を停めなくてはいけませんでした。 本日復旧作業をしていたのですが、ディスクアレイに繋がっているWSがうまく起動しません。また、ディスクアレイの表示画面にもROM ERROR と出ています。これは何が悪いのでしょうか?GW中なので、業者にも連絡がつかず八方塞がりな状態です。よろしくお願いします。 以下に詳しいlogの内容を記載しておきます。 (WS<COMPAQ XP1000>のlog) Checking local filesystems /sbin/ufs_fsck -p Can't open /dev/rrz8g : No such device or address /dev/rrz8g : CAN'T CHECK FILE SYSTEM Can't open /dev/rrz8h : No such device or address /dev/rrz8h : CAN'T CHECK FILE SYSTEM THE FOLLOWING FILE SYSTEMS HAD AN UNEXPECTED INCONSYSTENCY /dev/rrz8g(/raid) /dev/rrz8h(raid2) Unknown error in reboot (ディスクアレイ<proware 型番不明>の表示パネルに出てくるMessage) ROM ERROR 19200,8,1,N |
>>3213 伊藤@管理初心者 ディスクアレイの表示画面に ROM ERROR と出ているなら、ディスク アレイの故障した可能性が限りなく高いと。そっちは業者にまかせる として、あとはそのディスクアレイなしで OS がブートするかどうか です (ディスクアレイ中のデータを読み出すことが目的なら、あきら めて業者を待ちましょう)。 シングルユーザモードで起動して、/etc/vfstab あたりを修正して、 /dev/rrz8* をマウントしないようにするのが UNIX における一般的な 対処です。 ただ、おそらく OS は Tru64 あたりではないかと推測しますが、 さわったことがないので具体的な対処方法はわかりません。 |
>>3214 68user お返事ありがとうございます。 やはり、ディスクアレイは故障の可能性が高いと…。 68userさんのおっしゃる通り、ディスクアレイ中のデータを読み出すことが目的だったんですが・・・、わかりました。 いろいろと御助言ありがとうございました。 |
memo http://www.coins.tsukuba.ac.jp/~yas/classes/dsys-2002/2003-03-04/index.html http://www-6.ibm.com/jp/developerworks/security/011005/j_s-stun.html |
「ソースを表示してみよう」の結果が 次のように表示されてしまいます。 1: : Content-type: text/html(LF) 2: : (LF) 3: : <html><body bgcolor=white>(LF) 4: : </body></html>(LF) |
>>3217 匿名 ご報告ありがとうございます。ウチに帰ったら対処します。 |
テープメディア(DLTtapeIV)についての質問です。 DLTtapeIVに退避させた、圧縮後のデータの容量を調べる方法がわからず大変困っています。 テープ内の圧縮後データ容量を確認するコマンド、方法があれば教えて下さい。 なにとぞ、なにとぞ宜しくお願い致します。 |
クライアントよりフォルダを指定して、その配下全てのファイルをサーバにアップロードすることはservletで可能でしょうか? また、そのフォルダに指定したアクセス権限を付与することは可能でしょうか? |
>>3219 DLT8000user あんまり詳しくないんですが、tar で保存していれば tar tvf …とかいう話でしょうか? cpio は知りません。 じゃなくて、圧縮率の話? >>3220 匿名 servlet でというか、HTML 的にはフォルダまるごとのアップロードは 無理だと思います。やるなら Java Applet とか DirectX とかいう 話になるかと。 アクセス権限については環境依存なので、java.lang.Runtime#exec() で設定でしょうか。 |
>>3218 68user > ウチに帰ったら対処します。 と言いつつ忘れていました。そしてここ数日、このサーバが 落ちていたので、まだ対処できていません。今週末にはなんとか…。 |
ネットワークプログラミングの基礎のところで、 select や fork を「マルチスレッド」と書かれているようですが、 少し違うのではないでしょうか? 新しいスレッドが生成されず、見ため同時に動いていることを マルチスレッドとは言わないと思います。 |
>>3024 テクノソルジャー いまさらですが http-proxy.pl のメモリリークを修正しました。 ご指摘ありがとうございました。 http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/http-proxy.pl >>3217 匿名 > 「ソースを表示してみよう」の結果が次のように表示されてしまいます。 修正しました。ご指摘ありがとうございました。 >>3223 int > 見ため同時に動いていることをマルチスレッドとは言わないと思います。 「見ため同時に動いていること」を「マルチスレッド」と表記している 本があったのでそれを真似しているんですが、やっぱり変でしょうか (と言ってもその本が見付けられないので、勘違いかも)。 とはいえ、pthread などの「スレッド」と混同しやすいのは確かです。 より適切なの用語は「多重化」でしょうが、個人的にはわかりにくい と感じます (だからあえて「スレッド」としてみた)。 何かよい用語はないでしょうか。 |
初めまして。 突然ですがおききしたいことがあります。 貴HP内にてsocketを使ったHTTPクライアントを作るプログラムを拝見させていただき、独立した環境で同じように組んで実行しましたがホストが存在しないとかえってきました。 これは至極当然なので、$iaddr(指定アドレス)に自分自身(127.0.0.1)を指定して実行しました。 ちなみにANHTTPDが動いています。 perl5でライブラリ上でもsocketは確認しています。 結果はエラーコード500を返すだけでなにも起こりませんでした。 アクセスログもやはりエラーコードは500でした。 自分自身へ試してみて異常がないことを確認できなければ外部に向かって使用するのにはかなり抵抗があったため試してみたことでした。 socketを使っての自分自身へのアクセスはできないのでしょうか? お暇なときでよろしいですのでお返事よろしくおねがいいたします。 |
>何かよい用語はないでしょうか。 プロセス制御,プロセスの多重化,プロセスの生成と複写, マルチプロセス,同時実行プロセス 等は如何でしょう. |
>>3225 ちゃお > 結果はエラーコード500を返すだけでなにも起こりませんでした。 > アクセスログもやはりエラーコードは500でした。 ということは TCP/IP 的には正常に通信できているが、HTTP リクエスト で送信している内容がよくない、という状況と考えます。 あとは - 実行したのが http-client.pl なのか、http-client-2.pl なのか。 - http-client-2.pl であれば、URL に何と入力したのか。 その URL をブラウザで見ると正しく表示されるのか。 - そもそも telnet で成功したのか。その場合は何とタイプしたのか。 と情報がないと何とも言えません。 >>3226 Netboy apache 起動の件、ありがとうございました。 > プロセス制御,プロセスの多重化,プロセスの生成と複写, > マルチプロセス,同時実行プロセス いえ、どういう手法で多重化しているか (プロセス/スレッド/select) は 別として、「見ため同時に動いていること」を何と表記すればよいかが よくわからないのです。 |
>>3227 68user お返事ありがとうございます。 そして言葉足らず失礼いたしました。 >実行したのが http-client.pl なのか、http-client-2.pl なのか 実行したプログラムはhttp-client.plのほうです。 >telnet で成功したのか telnetでは127.0.0.1にポート80で接続できました。 でもそのあとのheloコマンドでは501を返してきました。 またメインマシンがwinMEなので最初の接続(open)はDOSプロンプトからできません。 >URL をブラウザで見ると正しく表示されるのか ブラウザではエラー500を返してきます。 またURLには127.0.0.1/root/http_client.cgiとしています。 拡張子はcgiにしています。 よろしくおねがいします。 |
連続ですいません。 さっきかきこんだあとおもうところがあって拡張子plで試してみました。 plは設定(http.conf)に登録していないのでいつも使っていませんでした。 もちろん今回も実行したあとはブラウザには表示されませんでした。 しかし、アクセスログには200が残っていました。 これって成功したということでいいのでしょうか? |
>>3228 ちゃお > でもそのあとのheloコマンドでは501を返してきました。 わたしの知る限り HELO と言えば SMTP です。そして ポート 80 の先にいるのは HTTP サーバです。HTTP サーバは SMTP を解さないので、エラーになるでしょう。 http-client.pl というのは、要はブラウザの代わりをする プログラムなのですが、その辺は理解されていますか? > またURLには127.0.0.1/root/http_client.cgiとしています。 あなたがブラウザで普通に見られるような URL を試しましょう。 http://127.0.0.1/ で何かコンテンツが表示されるなら、まずそれで試すべきです。 とりあえず http://x68000.startshop.co.jp/~68user/net/http-1.html を読んで、実際に試してみてください。 |
c言語でFTPクライアントのプログラムを組んでいます。 プロトコルやソースは大変参考にさせていただいています。 環境は、TurboLinux 8 serverです。 FTPクライアントのプログラムなのですが、ファイルの転送などは問題なく動作しているのですが、ディレクトリ単位の転送の記述部分がわかりません。何度かコマンドのデバッグモードで試して、RFCなどの記述も呼んでいるのですが。参考になるページがあるのでしたら、教えてください。 また、ファイルかディレクトリかを区別する方法もあればと思い、ご教授よろしくお願いいたします。 |
>>3231 じゅじゅ > ディレクトリ単位の転送 おそらく、ディレクトリを LIST or NLST して、一つ一つ RETR する しかないです。 > ファイルかディレクトリかを区別する方法 ブラウザで anonymous ftp サイトに接続した場合などは、LIST の結果が drwxr-xr-x ならディレクトリ、とするのが一般的だと思います。もっと きっちりやるなら、CWD で移動できたらディレクトリとみなす、とか。 基本的に、ftp は UNIX に依存したくなかったため、この辺はあえて 決めてないのではないかと思っています。 もしディレクトリを判別できるようにするなら、名前付きパイプは? ソケットは? デバイスファイルは? door は? ということになり、 結局 ls の結果をそのまま送る方がよい、と判断されたのではない でしょうか (そしてわたしは、この判断は誤りであると思っています)。 |
簡単なことかもしれませんが、LISTやNLSTをし、続けてファイルの総数やディレクトリの中にあるファイル名を取得することはできるのでしょうか?それらのデータを取得する記述と、また、 >drwxr-xr-x ならディレクトリを取得する 記述が分かりません。 ご教授よろしくお願いいたします。 |
>>3233 じゅじゅ LIST すれば drwxr-xr-x 9 user group 512 Apr 28 2001 dir1 drwxr-xr-x 10 user group 512 Jul 30 2000 dir2 -rw-r--r-- 1 user group 122 Mar 29 2000 file などという結果が返ってくるので、行頭が d である dir1 と dir2 がディレクトリであることがわかります。 さらに LIST dir1 とすれば dir1 の下のファイル・ ディレクトリ一覧が返ってきます。 |
>>3230 68user 前回はちんぷんかんぷんな質問失礼いたしました。 現状ちゃおのマシンにはapacheがインストールされています。 そしてrootにはhtdocsが指定されています。 さらにhtdocsの中にindex.htmlがあります。 まずはtelnetからやりなおしてみました。 コマンドプロンプトから以下のように入力しました。 telnet 127.0.0.1 80 接続成功 GET /index.html HTTP/1.1 HOST:127.0.0.1 Content-type:text/html ソース取得成功してます。 次にコマンドプロンプトからperlを実行します。 (もちろんperlのあるディレクトリには移動済みで、他のHTMLソースを吐き出させることにも成功しています) c:\>perl http_client.pl このときはなにも表示されません。 しかしコードは200を返します。 このときの結果は同じものではないのですか? >http-client.pl というのは、要はブラウザの代わりをする プログラムなのですが、その辺は理解されていますか? つまり$iaddrで指定したアドレスにあるソースを受け取って表示する、 dos上で実行したらbody部分がそのままdosプロンプトに表示されるということでいいんですよね??? それともこのプログラムにさらに引数を与えなければいけないのでしょうか? 長文になってしまい失礼いたしました。 またお時間のあるときにお返事いただければ幸いです。 |
Makefileでのライブラリの定義について はじめまして。solaris初心者のかんすけです。 環境はsparc-solaris8です。 Makefileを作成してみたのですが、自分で作成したライブラリファイルをCCのところでうまく定義できません。実行すると「ファイルが見つかりません」とエラーが表示されます。 この場合、まず何を疑えば良いのでしょうか? 正しいMakefileでのライブラリの定義の仕方を教えてください。 また良いサンプルファイルのURL等ありましたら、紹介してください。 よろしくお願いします。 |
今までの数々の質問大変失礼いたしました。 色々いじっているうちに何故か成功いたしました。 今までありがとうございました。 これからもがんばってください。 |
>>3236 かんすけ デフォルトルールや特殊変数などを全く活用してませんが、 main: main.o hoge.a $(CC) -o $@ $> hoge.a: hoge.a(a.o) hoge.a(b.o) $(AR) ru $@ $> とりあえずこんな感じで実現することは可能です。 |
OpenSSL による https クライアントをちょっとだけ バージョンアップしました (解説は更新なし)。 http://x68000.startshop.co.jp/~68user/net/ssl.html 変更点はこちら。 http://x68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/net/sample/https-client.c しかし SSL は未だによくわからん…。 |
苦節 3日。やっと rootCA を組み込む方法がわかった。 忘れないうちにメモメモ。 ctx = SSL_CTX_new(ssl_method()); SSL_CTX_load_verify_locations(ctx, "mod_ssl-2.8.9-1.3.26/pkg.sslcfg/ca-bundle.crt", NULL); |