FTPコマンドでファイルの途中からダウンロードする


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)LinuxtipsLinuxtips, ネットワーク > FTPコマンドでファイルの途中からダウンロードする
ファイルのダウンロード途中で、何らかの原因によりダウンロードが 中断してしまった場合、サイズが大きいファイルをダウンロードしていたら 最初からやり直すのは、時間のロスが大きくなってしまいます。 そんな時、中断したダウンロードの途中から再開するコマンドとして FTPコマンドのregetコマンドを使用します。
【この記事でわかること】
・ftp コマンドの REST コマンドでダウンロード再開位置(バイト数)を指定できる
・GET コマンドに続けて REST で設定したオフセットからダウンロードが再開される
・ダウンロード済みバイト数を ls -l などで確認してからオフセット値を設定する
・途中からダウンロードできるのはサーバー側が REST をサポートしている場合のみ

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら
事前準備(途中までダウンロードしたファイルを作成する) まず、wgetでlinux-2.6.29.tar.bz2ファイルをダウンロードします。 ダウンロードが始まり、3~4秒経ちましたら、「Ctrl」+「C」キーを 入力してダウンロードを中断してください。 [root@Tiger ~]# wget --no-passive-ftp ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2 --09:01:33-- ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.29.tar.bz2 => `linux-2.6.29.tar.bz2' Resolving ftp.kernel.org... 199.6.1.164, 204.152.191.37, 130.239.17.4, ... Connecting to ftp.kernel.org|199.6.1.164|:21... connected. Logging in as anonymous ... Logged in! ==> SYST ... done. ==> PWD ... done. ==> TYPE I ... done. ==> CWD /pub/linux/kernel/v2.6 ... done. ==> SIZE linux-2.6.29.tar.bz2 ... 56579370 ==> PORT ... done. ==> RETR linux-2.6.29.tar.bz2 ... done. Length: 56579370 (54M) 8% [===> ] 4,768,202 591K/s eta 1m 44s [root@Tiger ~]# もしダウンロードがうまくいかない場合は、オプションの 「--no-passive-ftp」を外して実行してくださいね。 ファイルの途中からダウンロードする 早速ダウンロードを再開してみましょう! [root@Tiger ~]# ftp www.kernel.org ←FTPコマンドでwww.kernel.orgへアクセス Connected to pub.all.kernel.org. 220 Welcome to ftp.kernel.org. 530 Please login with USER and PASS. 530 Please login with USER and PASS. KERBEROS_V4 rejected as an authentication type Name (www.kernel.org:root): anonymous ←「anonymous」と入力します 331 Please specify the password.  ←あなたのメールアドレスを入力します Password: 230- Welcome to the 230- 230- LINUX KERNEL ARCHIVES 230- ftp.kernel.org 230- 230- "Much more than just kernels" 230- 230- IF YOU'RE ACCESSING THIS SITE VIA A WEB BROWSER 230- PLEASE USE THE HTTP URL BELOW INSTEAD! 230- 230-----> If you are looking for mirror sites, please go <---- 230-----> to mirrors.kernel.org instead <---- 230- 230-This site is provided as a public service by the Linux Kernel ~中略~ 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> passive         ←「passive」と入力します Passive mode off. ftp> cd /pub/linux/kernel/v2.6/ ←「cd」コマンドでディレクトリを変更します 250 Directory successfully changed. ftp> reget linux-2.6.29.tar.bz2    ←「reget」コマンドを実行します local: linux-2.6.29.tar.bz2 remote: linux-2.6.29.tar.bz2 200 PORT command successful. Consider using PASV. 350 Restart position accepted (4807458). 150 Opening BINARY mode data connection for linux-2.6.29.tar.bz2 (56579370 bytes). ↑ダウンロードが再開されます 226 File send OK. 51771912 bytes received in 65 seconds (7.8e+02 Kbytes/s) ftp> bye  ←FTPを終了します もしダウンロードがうまくいかない場合は、「passive」を実行せずに ダウンロードの再開を行なってください。 regetコマンドは大きなファイルをダウンロードしていて 途中でダウンロードが止まってしまった場合、再開するときに 使用すると非常に便利です。

FTPの途中再開をスクリプトで自動化できますか?

大容量ファイルの転送中断は現場でよく起こります。REST コマンドの仕組みを理解しておくと、転送失敗時に素早く対処できます。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。


無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。