[過去ログ] 花子 ★と花代 ★の秘密の花園4 (1001レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 14:29:16 ID:RrB8QqMmI(1)調 BE AA×

外部リンク:www.maido3.com
外部リンク[html]:mickey.mirv.net
外部リンク:traffic.maido3.com
外部リンク:traffic.maido3.com
外部リンク[html]:ch2.ath.cx
外部リンク[html]:love.45.kg
2chスレ:operate
2chスレ:operate
2chスレ:operate
外部リンク:www.maido3.com
2
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 14:34:07 ID:RrB8QqMm0(1/64)調 BE AAS
644 :ピロリ [sage] :2008/10/19(日) 23:56:47 ID:BwRV+0i+0
過去ログはシンプルな形にするので
実験的に一アカウントだけ test/.htaccess をうまくいっているやつにかえて
うまく行くことを確認するだけでいいですー

収容が終わってから長い本番が始まるということで
1) read.cgi offlaw.cgiだけのシンプルな形にする
2) read.cgi .htaccess 等は /md/tmp に一個だけ置き各アカウントはシンボリックリンク
3) read.cgiの広告はどーせ更新されないので特別仕様へ
4) F35等お掃除プログラムの大改造、アカウントをまたいでサーバ内で一個起動
5) kakolog.html の整備(これは何年かかるか・・・)

等々
3
(2): マァヴ ◆jxAYUMI09s 2008/10/24(金) 14:35:35 ID:RrB8QqMm0(2/64)調 BE AAS
796 :ピロリ [sage] :2008/10/22(水) 18:29:46 ID:ruqJJ23l0
>>795

りょうかいー

【具体策】
サーバ毎に二個のスクリプトを置こう。

A) サーバ起動毎時に一回動くスクリプト(サーバ内の各種設定)
B) 定期的に外から呼ばれるお掃除プログラム

どちらもアカウント横断的に作業するので十分注意 ← こことても重要
既存のアカウント内に作ると経験上移転とかでの制約があるので
独自のアカウントを振って別とドメインにしよう。ドメイン自体は公開情報。
(なんでもいいです hana301.ula.ccとか)
A,Bのスクリプトは作り易い(テストし易い)ようにpublic_html下に置こう。
ただしバシバシ叩かれたらいやだから場所や名前は内緒。
public_html/index.html自体かそれからのリンクで動いているかどうかが
解るようにしよう(つまり動的なコンテンツ)

まずはこの仕様でスクリプト(Perl? 他でもいいけど、)を作る。
そして動かす(中身は起動されたら所定の位置にログを書き出すというだけ)。

二日もあれば出来るかな?
スクリプトはみんながここで教えると、
4: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 14:36:49 ID:SZeMqOZt0(1)調 AA×

5: マァヴ ◆jxAYUMI09s 2008/10/24(金) 14:38:29 ID:RrB8QqMm0(3/64)調 BE AAS
つことで>2の(4が>3で進行中(^_^;)

命題
・定期的に外から呼ばれるお掃除プログラム
・アカウント横断的に作業する
・ユーザーアカウントの1つに設置されている

のアイデア絶賛募集中(^_^;)
6: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:12:19 ID:RrB8QqMm0(4/64)調 BE AAS
#!/usr/bin/perl -w

print "Content-type: text/plain\n\n";
print "<a href=\"mirv_suteki.log\">マァヴさんって素敵!</a>";
@wdays = ( "日", "月", "火", "水", "木", "金", "土", "日" );
($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time);
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year + 1900, $mon + 1, $mday, $wdays[$wday],$hour, $min, $sec);
if ( -e "mirv_suteki.log" ) {
open(OUT, ">>mirv_suteki.log");
}else {
open(OUT, ">mirv_suteki.log");
}
close(OUT);

これで(^_^;)
7: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:12:28 ID:h7TPz9CUP(1/10)調 BE AAS
1000取ってしまた;
8: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:14:16 ID:h7TPz9CUP(2/10)調 BE AAS
ファイル存在確認いらないんじゃね?いるんだっけ?
9
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:15:00 ID:RrB8QqMm0(5/64)調 BE AAS
なんかうまく追記されてない(^_^;)
外部リンク[cgi]:hana301.ula.cc
10
(3): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:20:06 ID:JGievMm90(1/20)調 AAS
>>9
print OUT "mirv!<>$date\n"; 

がないんじゃない?
11
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:20:19 ID:vMVWqA7m0(1/9)調 AAS
DOSだと>>でファイルなければ作ってたけどうにも一緒じゃないの?
12: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:22:31 ID:RrB8QqMm0(6/64)調 BE AAS
>10
!!!!!!!!!!!!!!!!(^_^;)orz
13
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:23:50 ID:RrB8QqMm0(7/64)調 BE AAS
#!/usr/bin/perl -w

print "Content-type: text/plain\n\n";
print "<a href=\"mirv_suteki.log\">マァヴさんって素敵!</a>";
@wdays = ( "日", "月", "火", "水", "木", "金", "土", "日" );
($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time);
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year + 1900, $mon + 1, $mday, $wdays[$wday],$hour, $min, $sec);

if ( -e "mirv_suteki.log" ) {
print "mirv_suteki.logは存在します。\n" ;
open(OUT, ">>mirv_suteki.log");
}else {
print "mirv_suteki.logは存在しません。\n" ;
open(OUT, ">mirv_suteki.log");
}
print OUT "mirv!<>$date\n";
close(OUT);

うまく動いたー(^_^;)
14: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:25:37 ID:RrB8QqMm0(8/64)調 BE AAS
ということで、ログを書きだすことはできるようになったわけだ(^_^;)ぶふう
このログを/home/ch2tmp7/public_html/に書き出せれば勝ち
15
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:26:03 ID:h7TPz9CUP(3/10)調 BE AAS
そだよねたしか。
ファイル無ければ作成、あれば追記なはずー
16: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:28:40 ID:RrB8QqMm0(9/64)調 BE AAS
で、アカウント横断の計略としては(^_^;)
a) root権限で実行する
b) Suexecを使う
c) なんか他の方法考える

で、b)はとりあえず行き詰った(^_^;)のでa)を試そう
つまり・・・・root権限で実行してしまうのだった。
うまく書けるかな?
17: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:29:23 ID:RrB8QqMm0(10/64)調 BE AAS
>15
あ(^_^;)
open(OUT, ">>mirv_suteki.log");

ってやると、ファイルがない時はファイル作って書きこむんだ(^_^;)
18
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:30:36 ID:JGievMm90(2/20)調 AAS
perl5なら
If MODE is `'>>'', the file is opened for appending, again being created if necessary.
19: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:32:19 ID:h7TPz9CUP(4/10)調 BE AAS
>>11
頑張って口説きました

脱がせました

服を着せました

なんて紳士的w
20: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:34:44 ID:h7TPz9CUP(5/10)調 BE AAS
>>10だった;
21: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:35:53 ID:RrB8QqMm0(11/64)調 BE AAS
#!/usr/bin/perl -w

print "Content-type: text/plain\n\n";
print "<a href=\"mirv_suteki.log\">マァヴさんって素敵!</a>";
@wdays = ( "日", "月", "火", "水", "木", "金", "土", "日" );
($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time);
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year + 1900, $mon + 1, $mday, $wdays[$wday],$hour, $min, $sec);

open(OUT, ">>mirv_suteki.log");
print OUT "mirv!<>$date\n";
close(OUT);

これで動いた(^_^;)
22: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:37:23 ID:RrB8QqMm0(12/64)調 BE AAS
さて、こういうものを作ってみた(^_^;)

#!/usr/bin/perl -w

print "Content-type: text/plain\n\n";
print "<a href=\"外部リンク[log]:tmp7.2ch.net\">外部リンク:tmp7.2ch.net";
@wdays = ( "日", "月", "火", "水", "木", "金", "土", "日" );
($sec, $min, $hour, $mday, $mon, $year, $wday) = localtime(time);
$date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",$year + 1900, $mon + 1, $mday, $wdays[$wday],$hour, $min, $sec);

open(OUT, ">>/home/ch2tmp7/public_html/mirv_suteki.log");
print OUT "mirv!<>$date\n";
close(OUT);

これをulahana301/public_html/においといて
root権限で動かしてみる(^_^;)
23
(2): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:40:21 ID:RrB8QqMm0(13/64)調 BE AAS
外部リンク[log]:tmp7.2ch.net

できたできた(^_^;)
24
(2): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:41:45 ID:RrB8QqMm0(14/64)調 BE AAS
つことで・・・・(^_^;)前スレの

p1 外から呼ばれたら、自分のアカウントに起動トリガになるファイルを一個生成する(ulahana301の実行ファイル)
p2 root権限で毎分ごとに起動トリガファイルの有無を調べる(rootの実行ファイル)
 もし起動トリガファイルがあれば
  起動トリガファイルを削除して、p3を実行する
 さもなくば終了する
p3 root権限でp2によって起動する、お掃除プログラム本体(rootの実行ファイル)

p3が完成したと言っても過言ではない(^_^;)はず
25
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:42:25 ID:RrB8QqMm0(15/64)調 BE AAS
でもってp1はa.cgiでええやん(^_^;)と
あとはp2を作って定期的に動かす・・・
26: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:44:48 ID:RrB8QqMm0(16/64)調 BE AAS
つことでp2を作ってみる(^_^;)
27: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:44:53 ID:JGievMm90(3/20)調 AAS
>>23
時間は現地時間でいいのかな?
28
(2): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 15:45:59 ID:vMVWqA7m0(2/9)調 AAS
>>25
定期的に動かすのは前スレで出てたdaemontoolsのsvcなんちゃらだぬ
29
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:46:11 ID:RrB8QqMm0(17/64)調 BE AA×

30: マァヴ ◆jxAYUMI09s 2008/10/24(金) 15:46:53 ID:RrB8QqMm0(18/64)調 BE AAS
>28
ほうほう(^_^;)そこでdaemontoolsが出てくるのか!
まずは手動で動くものを作るー
31
(1): 28 2008/10/24(金) 16:04:43 ID:vMVWqA7m0(3/9)調 AAS
ごめ、ちょっと違うかも
daemontools
外部リンク[html]:www.emaillab.org
superviseは指定したプログラムを起動・監視・終了とかさせるものらしい
daemon化させるためのツールですな

そのなかにこんなの発見 使えそうな予感
The setuidgid program
外部リンク[html]:www.emaillab.org
> setuidgid は明記されたアカウントの uid と gid で別のプログラムを起動します。
rootから子プロセスを指定されたアカウントで実行するものらすい
> setuidgid は root 以外では動かせません。
32: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 16:09:04 ID:JGievMm90(4/20)調 AAS
>>29
>>18でやった事の応用で済むね。
33: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 16:10:14 ID:JGievMm90(5/20)調 AAS
× 18  ○ >>13
34
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 16:21:43 ID:JGievMm90(6/20)調 AAS
>>31
前スレでも書いたけど、それ使うなら
スーパーバイザー→指令→親プロセスA(起動時以降はデーモン)→チャイルドB1,B2...生成→.....
の流れだと思うんだけど、
httpdからのチャイルド生成を目指している(?)ようなので、どうかなあ。
35
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 16:28:52 ID:vMVWqA7m0(4/9)調 AAS
>>34
>>24を見るかぎり、p2をroot権限でdaemon化しておいてp3を起動するのにsetuidgidが使えるんじゃないかと思ったんだけど
p1はトリガファイル作る程度だからroot権限なんていらないし
36: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 16:41:04 ID:JGievMm90(7/20)調 AAS
>>35
・前スレ>>990-991で、書かれてた事、
・今回ファイルに書き込めたのはroot権限で動作させた(p1の動作です)

を見ると、どうなのかな? と思ったのですよ。
37
(1): ピロリ 2008/10/24(金) 16:46:25 ID:6Yk/gpUK0(1/9)調 AAS
>>23
各アカウントには書き出さないでくれ〜
38
(1): ピロリ 2008/10/24(金) 16:47:13 ID:6Yk/gpUK0(2/9)調 AAS
テストだけならいいような気もするけど
テスト用のアカウントを作ればいいでしょ
39
(3): ピロリ 2008/10/24(金) 17:00:10 ID:6Yk/gpUK0(3/9)調 AAS
1)の起動時に行われる作業

1-a)
全てのアカウントに対して行う。
制御用アカウントに
public_html/.htaccess
public_html/test/.htaccess
public_html/test/read.cgi 等 (*.so offlaw* read.cgi)
を用意しておく
/md/tmp/public_html に全てをコピー

全てのアカウントの以上のファイルを消去
シンボリックリンクにする
例) public_html/test/read,cgi -> /md/tmp/public_html/test/read.cgi
懸念は広告ファイルはどうなるか・・・
同じ場所に入れなきゃだよなぁ、たぶん
過去ログ倉庫用の広告ファイル(中身は好きに作ってネ)も
/md/tmp/public_html 配下にネ

1-b)
全てのアカウントに対して行う。
アカウント配下のすべての板に対して行う。
public_html/siberia/i/ をディレクトリごとしょうきょ(rm -rf siberia/i/)
/md/ch2xxxx/siberia/i/ を作成
んでシンボリックリンク
public_html/siberia/i/ -> /md/ch2xxxx/siberia/i/
懸念は、mdの容量問題っすね

これで1)は完成
2) は /md/ch2xxxx/siberia/i/ の中の古いファイル(N日たったファイル)を消す
ただし 呼ばれたら 一アカウントの一板のを消すだけ、次に呼ばれたら
その次をやる、呼ばれるのは M分おき。
40
(1): ピロリ 2008/10/24(金) 17:01:13 ID:6Yk/gpUK0(4/9)調 AAS
>>37
>>38
のように今回作るスクリプトでは各アカウントに書き込みはご法度。
41: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 17:07:35 ID:JGievMm90(8/20)調 AAS
>>40
要は、
・収集は各アカウントの情報
・収集した情報は、収集用の専用アカウントに書き込む

と言う事?
42: ピロリ 2008/10/24(金) 17:11:25 ID:6Yk/gpUK0(5/9)調 AAS
んだんだ
43: マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:12:22 ID:RrB8QqMm0(19/64)調 BE AAS
ぅぃぅぃ(^_^;)了解
書きだすのは実験用のアカウント作って検証する。
44: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 17:12:34 ID:h7TPz9CUP(6/10)調 BE AAS
あーなるほど、まとめる訳か。
45
(1): ピロリ 2008/10/24(金) 17:14:29 ID:6Yk/gpUK0(6/9)調 AAS
アパッチのログもまとめたいが
それは次ですな、
46: マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:18:46 ID:RrB8QqMm0(20/64)調 BE AAS
>39
1)は/etc/rc.localから起動しよう(^_^;)そうしよう
47: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 17:19:15 ID:JGievMm90(9/20)調 AAS
Apacheの各種logをまとめちゃうと、容量が怖くなってくる気がする
(現状知らないけど)
48: マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:23:20 ID:RrB8QqMm0(21/64)調 BE AAS
んで2)の仕組みは、もっといい方法が見つかるまでは
>24の方式でやることにしよう(^_^;)
49: マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:40:00 ID:RrB8QqMm0(22/64)調 BE AAS
制御用アカウントに  
public_html/.htaccess
public_html/test/.htaccess
public_html/test/read.cgi 等 (*.so offlaw* read.cgi)
を用意しておく

これをやっておこう(^_^;)aiai.tarを解凍する
50
(3): マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:47:32 ID:RrB8QqMm0(23/64)調 BE AAS
んじゃいよいよプログラムです(^_^;)
まず最初に、全てのアカウントに対して作業を行う・・・・んだから
全てのアカウントのリストがほしい・・・・
配列っつーんだっけ?(^_^;)それに入れとけば
何度でもそのリストを元に作業ができるんだよね?
51: マァヴ ◆jxAYUMI09s 2008/10/24(金) 17:55:55 ID:RrB8QqMm0(24/64)調 BE AAS
で、アカウントのリストは、ls -1 /md/ch2*で取得できるはず(^_^;)
52
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 18:11:36 ID:JGievMm90(10/20)調 AAS
>>50
急ぎ作業ではないなら、
@dog、$cat、$cat[esa]、$cat[esa][karikari] 等
ポインタと呼ばれる事を今のうちに覚えたほうが今後楽になるかもしれません。
53: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 18:12:05 ID:gtuOGIns0(1/6)調 AAS
>>50
プログラム中に埋め込むの?テキストとして別で保存しとく?

リダイレクトでテキストに出して、それを読み込むの方が簡単かも。

$a 変数。 $a = "マァヴ";
@data 配列。各要素へのアクセスは $data[0] , $data[1] ,$data[2], ・・・
@data = ( "マァヴ1号" , "マァヴ2号" , "マァヴ3号");
$data[0] の中身は "マァヴ1号" になる。
54: 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 18:12:41 ID:JGievMm90(11/20)調 AAS
あくまで例えの変数名ですので。
55
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:16:14 ID:RrB8QqMm0(25/64)調 BE AAS
#!/usr/bin/perl -w

#アカウントリストを作る
opendir(MD, /md);
@ServerList = readdir(MD);
closedir(md);

#できあがったリストを確認のため出力
print "Content-type: text/html\n\n";
for $TgtServer (@ServerList) {
print "$TgtServer\n;"
}

これで、/mdにあるディレクトリのリストが表示されても不思議はない(^_^;)はず
56: ピロリ 2008/10/24(金) 18:18:02 ID:6Yk/gpUK0(7/9)調 AAS
<^_^;>
57
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:19:05 ID:RrB8QqMm0(26/64)調 BE AAS
>52
ぅぃぅぃ(^_^;)それが活躍しそうなところに来たら
「今だ」と指摘よろしく〜

なんせ、初めてのperlっつーかプログラムな状況ですぜ〜

>50
環境依存ではあるけど、/mdのch2で始まるディレクトリが
サーバのリストになるので、起動時に取得する方向で考えてます(^_^;)
58
(1): 2008/10/24(金) 18:19:34 ID:gtuOGIns0(2/6)調 AAS
がーん><

closedir(md);

  ↓

closedir(MD);
59
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 18:21:36 ID:JGievMm90(12/20)調 AAS
for $TgtServer (@ServerList) { 

$TgtServerには何が入っていますか?
初期化しましたか?
60
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:23:29 ID:RrB8QqMm0(27/64)調 BE AAS
>55
わずかこれだけのプログラムで19行ものエラーを吐かれたよ(^_^;)
61: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:24:44 ID:RrB8QqMm0(28/64)調 BE AAS
>59
初期化?(^_^;)ってどうやるの?
62: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:25:13 ID:RrB8QqMm0(29/64)調 BE AAS
>58
おお(^_^;)直した
63
(2): 2008/10/24(金) 18:26:06 ID:gtuOGIns0(3/6)調 AAS
>>57
なるほろほろ

んじゃch2以外のものもある場合は

print "$TgtServer\n;"
の部分を

if ( $TgtServer =~ /^ch2/) print "$TgtServer\n;"

とするといいかも。

ch2しかないなら不要です。

あと for じゃなくて foreach ね。
64
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:27:59 ID:RrB8QqMm0(30/64)調 BE AAS
#!/usr/bin/perl -w

#アカウントリストを作る
opendir(MD, /md);
@ServerList = readdir(MD);
closedir(MD);

#できあがったリストを確認のため出力
print "Content-type: text/html\n\n";
$TgtServer = 0;
for $TgtServer (@ServerList) {
print "$TgtServer\n;"
}

>63
これが動いたらやってみる(^_^;)
まずはここまでを動かしたい〜
65
(1): 動け動けウゴウゴ2ちゃんねる 2008/10/24(金) 18:29:05 ID:JGievMm90(13/20)調 AAS
>>60
@ServerList には”.”、”..”を含めたリストが入っていると思います。
で、$TgtServer には、何を入れたいかがわかりません。

もし、@ServerList の上から順に入れてfor文を回すのなら、完全に間違いです。
66: 2008/10/24(金) 18:31:02 ID:gtuOGIns0(4/6)調 AAS
>>64
いや、これはやって。
  ↓
for じゃなくて foreach。

forだと構文エラーです。

foreach $TgtServer (@ServerList) {
67
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:34:19 ID:RrB8QqMm0(31/64)調 BE AAS
>65
えーっと(^_^;)
>@ServerList には”.”、”..”を含めたリストが入っていると思います。
はい(^_^;)入っていても不思議はないです。

>で、$TgtServer には、何を入れたいかがわかりません。
$TgtServerには、@ServerListの最初から1つずつ
要素を入れたいわけです(^_^;)
具体的には
@ServerListに/mdのファイルリストが入っているので
そこから$TgtServerに1つ取り出しては、printする・・・・と(^_^;)
68
(1): 2008/10/24(金) 18:35:51 ID:gtuOGIns0(5/6)調 AAS
>>67
>print "$TgtServer\n;"

行末の ; の位置が・・・。
69: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:36:37 ID:RrB8QqMm0(32/64)調 BE AAS
#!/usr/bin/perl -w

#アカウントリストを作る
opendir(MD, /md);
@ServerList = readdir(MD);
closedir(MD);

#できあがったリストを確認のため出力
print "Content-type: text/html\n\n";
$TgtServer = 0;
foreach $TgtServer (@ServerList) {
print ("$TgtServer\n");
}

としてみた(^_^;)
70: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:37:02 ID:RrB8QqMm0(33/64)調 BE AAS
>68(^_^;)
71: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:38:46 ID:RrB8QqMm0(34/64)調 BE AAS
エラーは19行から22行に増えてます(^_^;)
Possible unintended interpolation of @ServerList in string at ./dotabata.cgi line 4.
Bareword found where operator expected at ./dotabata.cgi line 9, near "print "Content-type: text/html"
(Might be a runaway multi-line // string starting on line 4)
(Do you need to predeclare print?)
Unquoted string "html" may clash with future reserved word at ./dotabata.cgi line 9.
Backslash found where operator expected at ./dotabata.cgi line 9, near "html\"
Unquoted string "n" may clash with future reserved word at ./dotabata.cgi line 9.
Backslash found where operator expected at ./dotabata.cgi line 9, near "n\"
Unquoted string "n" may clash with future reserved word at ./dotabata.cgi line 9.
String found where operator expected at ./dotabata.cgi line 12, near "print (""
(Might be a runaway multi-line "" string starting on line 9)
(Missing semicolon on previous line?)
Scalar found where operator expected at ./dotabata.cgi line 12, near "print ("$TgtServer"
(Do you need to predeclare print?)
Backslash found where operator expected at ./dotabata.cgi line 12, near "$TgtServer\"
(Missing operator before \?)
Unquoted string "n" may clash with future reserved word at ./dotabata.cgi line 12.
String found where operator expected at ./dotabata.cgi line 12, at end of line
(Missing semicolon on previous line?)
syntax error at ./dotabata.cgi line 9, near "print "Content-type: text/html"
Can't find string terminator '"' anywhere before EOF at ./dotabata.cgi line 12.
ulahana301@banana3174:~/public_html$ cat ./dotabata.cgi
72: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:41:41 ID:RrB8QqMm0(35/64)調 BE AAS
こ、こうか?(^_^;)

#!/usr/bin/perl -w

#アカウントリストを作る
opendir(MD,"/md");
@ServerList = readdir(MD);
closedir(MD);

#できあがったリストを確認のため出力
print "Content-type: text/html\n\n";
$TgtServer = 0;
foreach $TgtServer (@ServerList) {
print ("$TgtServer\n");
}
73
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:43:21 ID:RrB8QqMm0(36/64)調 BE AAS
できたー(^_^;)っ外部リンク[cgi]:hana301.ula.cc
原因はdiropenするときのディレクトリを""でかこってなかった・・・・でした(^_^;)
74: マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:45:44 ID:RrB8QqMm0(37/64)調 BE AAS
>63を入れてみる(^_^;)
;の場所注意
75: 2008/10/24(金) 18:47:56 ID:gtuOGIns0(6/6)調 AAS
♪♪♪

んで、一応書いておこう。

>@ServerList には”.”、”..”を含めたリストが入っていると思います。
ってことなので

ch2以外のディレクトリが存在するなら
foreach $TgtServer (@ServerList) {
if ( $TgtServer =~ /^ch2/) { print "$TgtServer\n"; }
}

存在しないなら
foreach $TgtServer (@ServerList) {
if($TgtServer eq "."){ next; }
if($TgtServer eq ".."){ next; }
print "$TgtServer\n";
}

# $TgtServer = 0;はいらないですー

>>73
見れないけどうまく行ったのかな?
2ch板:_500
ここに飛ばされる
76
(1): マァヴ ◆jxAYUMI09s 2008/10/24(金) 18:51:33 ID:RrB8QqMm0(38/64)調 BE AAS
#!/usr/bin/perl -w

#アカウントリストを作る
opendir(MD,"/md");
@ServerList = readdir(MD);
closedir(MD);

#できあがったリストを確認のため出力
print "Content-type: text/html\n\n";
$TgtServer = 0;
foreach $TgtServer (@ServerList) {
if ( $TgtServer =~ /^ch2/) {
print ("$TgtServer\n");
}
}

動いた(^_^;)っ外部リンク[cgi]:hana301.ula.cc
1-
あと 925 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.046s