■掲示板に戻る■ 全部 1- 最新50ftpの成否を判別する方法ありますか?
- 1 :おたま :2001/07/23(月) 14:15
- 毎日生成されるLogファイルをBackupサーバーへ、ファイル転送成功ならばrmし、失敗ならばrmせずに管理者にmailする、という処理を書こうとしてます。
Script実行中にサブコマンド(cd、prompt、mput、quit等)を一時ファイルに書き込んで自動実行させます。
最初、$?で簡単に条件分岐できる、と思っていましたが、それ以前のサブコマンドの成否にかかわらずquitで抜けた時常に$?=0をかえすので、その方法では駄目だ、という事が分かりました。
ftpの転送処理(put、mput、get、mget等)の部分に関する成否だけでも取得する、何か良い方法はありませんでしょうか?
- 2 :名無しさん@お腹いっぱい。 :2001/07/23(月) 14:29
- Perl使え
==終了==
- 3 :名有りさん@お腹へった :2001/07/23(月) 14:32
- >>1
どうしてもftp使うのなら ftpの出力する文字列を判別して
ファイル転送が成功したかエラーになったかを判断することに
なるんでしょう
でも オレならこういう場合はftpなんか使わずにscp使うと
思うけどなぁ シェルスクリプトでの処理ならこの方が
絶対簡単だと思うし
- 4 :名無しさん@お腹いっぱい。 :2001/07/23(月) 14:42
- なあ、Perlで5分出かける処理をなんでわざわざシェルスクリプト
にして苦しんでるんだ?
- 5 :名無しさん@お腹いっぱい。 :2001/07/23(月) 14:47
- なあ、なんでシェルスクリプトで書ける処理をわざわざ
perlで書くんだ
- 6 :名無しさん@お腹いっぱい。 :2001/07/23(月) 14:49
- >>5
そりゃ、あんたシェルスクリプトよりPerlの方が便利だからだろ。。
シェルスクリプトじゃ自由度低すぎて、再利用もしにくいし、
もうちょいましな処理させたくなった時苦労するし。
って、そんなこともわからんのか。。。夏厨多すぎ。
- 7 :名無しさん@お腹いっぱい。 :2001/07/23(月) 14:51
- >>5
その方が手間がかからないから。
顧客からの要求でもない限り、
自分が楽に記述できる言語で書くだろ。
- 8 :名無しさん@お腹いっぱい。 :2001/07/23(月) 17:29
- 使い分けできないやつが糞
- 9 :おたま :2001/07/23(月) 20:46
- Target machine=Backup serverがW2KのFTP serviceしか上がってないんです。
scpはTarget、Source双方にsshがインストされてないとだから、この場合駄目かな、と思います。
Perlは全然知らないのでこれから勉強しますが、こんな場合でも大丈夫でしょうか?
それともやはり、
> ftpの出力する文字列を判別して
> ファイル転送が成功したかエラーになったかを判断
しか方法は無いでしょうか?
>>3
この場合って、
ftp$ls hogehoge > gehogeho
ってやるんですよね?
- 10 :#6411 :2001/07/23(月) 20:49
- FreeBSDだと、libfetchってのがあるみたいね。
ほかのBSDにあるかどうかは未確認。(BSDIにはない模様)
man 3 fetch
- 11 :名無しさん@お腹いっぱい。 :2001/07/23(月) 20:54
- Net::FTP っていうモジュールがあったような。
- 12 :3 :2001/07/23(月) 21:03
- >>9
Cygwin版のOpenSSHあるの知ってます?
それを入れてsshd走らせておけばいいのでわ?
http://www.cygwin.com/
シェルスクリプトからftp呼び出す方法でやりたいのなら 例えば
nfiles=`ftp -i <ftpscript 2>&1 | fgrep 'Transfer complete.' | wc -l`
で転送できたファイル数が得られるだろうから これで判断するとか
すれば?
- 13 :3 :2001/07/23(月) 21:22
- nfiles=`ftp -iv <ftpscript 2>&1 | fgrep 'Transfer complete.' | wc -l`
ぢゃないとマズいかも......スマソ
あと,~/.netrc ちゅうのは知ってますね?
- 14 :名無しさん@お腹いっぱい。 :2001/07/23(月) 21:30
- #!perl
use Net::FTP;
use strict;
sub assert { die "$@\nitteyosi" if not $_[0]; }
my $conn;
assert($conn = Net::FTP->new("windows"));
assert($conn->login("nanasisan", "hiroyukimansee"));
assert($conn->put("logfile", time().".log"));
$conn->quit;
- 15 :名無しさん@お腹いっぱい。 :2001/07/23(月) 22:39
- >>1
昔、そんな処理を perl で書いたことある。
でも、今は ncftp に入ってる ncftpput の -DD オプションが
もろ解答と思われ。
- 16 :名無しさん@お腹いっぱい。 :2001/07/23(月) 22:44
- なんで sh やら perl やらという話になるのかさっぱり
わからん。sh でも perl でもやることは一緒だろ?
俺なら put して、size でファイルサイズ取って、
全部転送できたかどうか比較。
それでも心配なら (ftp(1), ftpd(8) や TCP/IP まで信用
できないなら) put したものを get して、cmp(1) すれ。
>>14
assert の意味を理解してないと思われ。
単体テストが終わったらチェック自体をなくしてもよい
場合に assert するんだぜ? 実運用でも必要なチェックを
assert とは言わない。
- 17 :名無しさん@お腹いっぱい。 :2001/07/23(月) 22:50
- テープに取って手で運びなさい
- 18 :名無しさん@お腹いっぱい。 :2001/07/23(月) 23:08
- Ruby信者出てこい。
- 19 :名無しさん@お腹いっぱい。 :2001/07/24(火) 01:27
- 信者とは失敬な
- 20 :名無しさん@お腹いっぱい。 :2001/07/24(火) 01:45
- マイナーなものは大抵宗教にされてしまう法則。
- 21 :名無しさん@お腹いっぱい。 :2001/07/24(火) 01:53
- FreeBSD原理主義者といっしょにしないでくれ
- 22 :#6411 :2001/07/24(火) 01:57
- みんな、心に宗教を持て。
(でも、押しつけないでね。)
- 23 :名無しさん@お腹いっぱい。 :2001/07/24(火) 03:10
- >>22
FreeBSD「原理主義者」と言われる所以に、「押し付ける」という傾向がある。ゆえに「原理主義者」と言われている。
- 24 :Solaris :2001/07/24(火) 18:01
- http://www.himawari.sakura.ne.jp/%7Eloveseat/index.html
- 25 :名無しさん@お腹いっぱい。 :2001/07/24(火) 18:05
- 押しつけなくていいところがBSDライセンスなんだけどねー。
- 26 :名無しさん@お腹いっぱい。 :2001/07/24(火) 18:35
- >>16
オレなら cmp なんかしないで md5sum を比較するが。
chksum でもいいかもしれない。
- 27 :名無しさん@お腹いっぱい。 :2001/07/24(火) 18:38
- ncftpget だとプロセス終了コードで成功したかどうかわかるね。
- 28 :16 :2001/07/24(火) 20:06
- >>26
あれれ、なぜにチェックサムで済ませようとするの?
そっちの方が軽いとも思えんのだがなぁ。
- 29 :名無しさん@お腹いっぱい。 :2001/07/24(火) 20:37
- >>23
押しつけるのは Linux のほうだろう。
それだけならともかく、なぜネガティブキャンペーンまでやるかな。
長年迷惑してるんだけど。
- 30 :名無しさん@お腹いっぱい。 :2001/07/25(水) 00:56
- >>29
ircnetでも職場でもことあるごとに「だからLinuxださいんだよな」とかもう聞き飽きているし、OS選定の話になると適合性を無視してFreeBSDとわめきたてて、いざ動かそうとすると「最近のハードウエアはUNIXの事を考えて作っていない」だもの。FreeBSDに罪はないさ。FreeBSD原理主義者は悪そのもの。
- 31 :名無しさん@お腹いっぱい。 :2001/07/25(水) 00:58
- FreeBSDに対して、徹底的にネガティブな感情しかもてないのはさ、ほんのごく一部の原理主義者(筆頭 hubard)がネガティブキャンペーンを展開しているのをコミュニティが容認しているからさ。コーランにもあるだろう。目には目を、歯には歯を。
- 32 :名無しさん@お腹いっぱい。 :2001/07/25(水) 00:59
- 人を憎んでOSを憎まず。
- 33 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:00
- FreeBSD原理にはこうある。
「都合の悪い事があれば、自分の責任とせず、他者を貶めよ」
- 34 :33 :2001/07/25(水) 01:03
- これはFreeBSDユーザー15名を見て、共通して感じる印象だ。
例えばWindowsに関してど素人であるにも関わらず、セキュリティホール情報が流れると嬉々としてその情報をぶちまけるが、その後でパッチ情報を供給するといったフォローはまるでやらない。この板にもそんな奴がいっぱいいるよな。
- 35 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:05
- Jordan K. HubbardはBill Gates 3rdと名を改めるべきだ
- 36 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:17
- >>29
んでよ。FreeBSDを使う限り永遠に迷惑してくれたまえ。FreeBSD原理主義者どもの始末に悪い事の数々の恨みを考えれば、ざまぁみろって気分だ。自業自得 :p 日ごろの行いの報い。
- 37 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:18
- FreeBSDを選択した事が既に罪なのだよ。
- 38 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:25
- この手の話ちょっと興味あるなぁ
- 39 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:44
- Linux板に出張あらしやめろよ>FreeBSD原理主義者
- 40 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:44
- > 例えばWindowsに関してど素人であるにも関わらず、セキュリティホール情報
> が流れると嬉々としてその情報をぶちまけるが、その後でパッチ情報を供給す
> るといったフォローはまるでやらない
そうか? 「セキュリティホール memo」では、ちゃんとパッチ情報をフォロー
しているぞ。あの作者がメインに使っている OS は FreeBSD の筈ダ。
というわけで、反例その1。
というか、上の記述に当てはまるユーザーって FreeBSD に限らず、例えば
Linux ユーザーでも一杯いると思うんだが (Linux JAPAN でそういう連載
している人までいますな)、なんで FreeBSD ユーザーだけとりあげるんじゃろ。
キミ、別の理由があるね。
- 41 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:45
- >>40
全然反例になっていない。セキュリティホールメモの人は、あらゆるOSに精通している方だ。彼はFreeBSD原理主義者ではない。
- 42 :名無しさん@お腹いっぱい。 :2001/07/25(水) 01:46
- >>40
貴方には彼との面識があるかね?私にはあるが。
続きを読む
掲示板に戻る 全部 次100 最新50read.cgi ver5.26+ (01/10/21-)