ফাইল ট্রান্সফার

ইন্টারনেটের বহুমূখী যে ব্যবহার আমরা দেখে থাকি তা গড়ে উঠৈছে ফাইল ট্রান্সফারকে কেন্দ্র করে। আমাদের এই লেসনের আলোচ্য বিষয় ফাইল ট্রান্সফার এর বিভিন্ন উপায় এবং সেই উপায়গুলো যেখানে নিরাপত্তা কোনো বিবেচ্য বিষয় নয়। নিরাপদ ফাইল ট্রান্সফারের জন্য আমাদের পরের লেসন পর্যন্ত অপেক্ষা করতে হবে।

এফটিপি (ftp)

এফটিপি এর পুরো অর্থ ফাইল ট্রান্সফার প্রোটোকল। বুঝতেই পারছেন, ফাইল ট্রান্সফারের জন্যই এর জন্ম। এর মাধ্যমে আপনি এফটিপি সার্ভারে এফটিপি ক্লায়েন্ট দিয়ে যুক্ত হয়ে ফাইল ডাউনলোড করতে পারেন। এর একটা সমস্যা হচ্ছে এটি ক্রেডিনশিয়াল টেক্সট হিসেবে ট্রান্সফার করে বলে নিরাপদ না। তাই অধিকাংশ এফটিপি সার্ভার 'anonymous' নামে একাউন্টে যেকোনো হিজিবিজি পাসওয়ার্ড দিয়ে ঢুকতে দেয়। এফটিপি ব্যবহারের জন্য আমরা ftp প্রোগ্রামটি ব্যবহার করবো।

আমরা এফটিপির মাধ্যমে mirror,dhakacom.com এ ঢুকবো:

me@howotocode-pc:~$ ftp mirror.dhakacom.com
Connected to mirror.dhakacom.com.
220 Welcome to dhakaCom FTP mirror server.
Name (mirror.dhakacom.com:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd ubuntu-releases/trusty
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              27 Feb 19 22:21 FOOTER.html
-rw-r--r--    1 0        0            2943 Mar 10 05:59 HEADER.html
-rw-r--r--    1 0        0             307 Mar 26 19:18 MD5SUMS
-rw-r--r--    1 0        0             844 Feb 19 22:21 MD5SUMS-metalink
-rw-r--r--    1 0        0             198 Feb 19 22:21 MD5SUMS-metalink.gpg
-rw-r--r--    1 0        0             198 Mar 26 19:18 MD5SUMS.gpg
-rw-r--r--    1 0        0             347 Mar 26 19:18 SHA1SUMS
-rw-r--r--    1 0        0             198 Mar 26 19:18 SHA1SUMS.gpg
-rw-r--r--    1 0        0             467 Mar 26 19:18 SHA256SUMS
-rw-r--r--    1 0        0             198 Mar 26 19:18 SHA256SUMS.gpg
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.iso -> ../.pool/ubuntu-14.04.2-desktop-amd64.iso
-rw-r--r--    1 0        0           40180 Feb 19 22:17 ubuntu-14.04.2-desktop-amd64.iso.torrent
lrwxrwxrwx    1 0        0              47 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.iso.zsync -> ../.pool/ubuntu-14.04.2-desktop-amd64.iso.zsync
lrwxrwxrwx    1 0        0              42 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.list -> ../.pool/ubuntu-14.04.2-desktop-amd64.list
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.manifest -> ../.pool/ubuntu-14.04.2-desktop-amd64.manifest
-rw-r--r--    1 0        0           46233 Feb 19 22:21 ubuntu-14.04.2-desktop-amd64.metalink
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.iso -> ../.pool/ubuntu-14.04.2-desktop-i386.iso
-rw-r--r--    1 0        0           40459 Feb 19 22:17 ubuntu-14.04.2-desktop-i386.iso.torrent
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.iso.zsync -> ../.pool/ubuntu-14.04.2-desktop-i386.iso.zsync
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.list -> ../.pool/ubuntu-14.04.2-desktop-i386.list
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.manifest -> ../.pool/ubuntu-14.04.2-desktop-i386.manifest
-rw-r--r--    1 0        0           45906 Feb 19 22:21 ubuntu-14.04.2-desktop-i386.metalink
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-server-amd64.iso -> ../.pool/ubuntu-14.04.2-server-amd64.iso
-rw-r--r--    1 0        0           24138 Feb 19 22:20 ubuntu-14.04.2-server-amd64.iso.torrent
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-server-amd64.iso.zsync -> ../.pool/ubuntu-14.04.2-server-amd64.iso.zsync
lrwxrwxrwx    1 0        0              42 Feb 20 02:18 ubuntu-14.04.2-server-amd64.jigdo -> ../.pool/ubuntu-14.04.2-server-amd64.jigdo
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-server-amd64.list -> ../.pool/ubuntu-14.04.2-server-amd64.list
-rw-r--r--    1 0        0           45905 Feb 19 22:21 ubuntu-14.04.2-server-amd64.metalink
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-server-amd64.template -> ../.pool/ubuntu-14.04.2-server-amd64.template
lrwxrwxrwx    1 0        0              39 Feb 20 02:18 ubuntu-14.04.2-server-i386.iso -> ../.pool/ubuntu-14.04.2-server-i386.iso
-rw-r--r--    1 0        0           23457 Feb 19 22:21 ubuntu-14.04.2-server-i386.iso.torrent
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-server-i386.iso.zsync -> ../.pool/ubuntu-14.04.2-server-i386.iso.zsync
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-server-i386.jigdo -> ../.pool/ubuntu-14.04.2-server-i386.jigdo
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-server-i386.list -> ../.pool/ubuntu-14.04.2-server-i386.list
-rw-r--r--    1 0        0           45578 Feb 19 22:21 ubuntu-14.04.2-server-i386.metalink
lrwxrwxrwx    1 0        0              44 Feb 20 02:18 ubuntu-14.04.2-server-i386.template -> ../.pool/ubuntu-14.04.2-server-i386.template
-rw-r--r--    1 0        0         2551408 Apr 14  2014 wubi.exe
226 Directory send OK.
ftp> lcd ~/Desktop
Local directory now /home/me/Desktop
ftp> get MD5SUMS
local: MD5SUMS remote: MD5SUMS
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for MD5SUMS (307 bytes).
226 File send OK.
307 bytes received in 0.01 secs (30.8 kB/s)
ftp> exit
221 Goodbye.

এবার আসুন পুরো এফটিপি সেশনটির বিভিন্ন অংশ দেখি:

me@howotocode-pc:~$ ftp mirror.dhakacom.com
Connected to mirror.dhakacom.com.
220 Welcome to dhakaCom FTP mirror server.
Name (mirror.dhakacom.com:me): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

প্রথমেই আমরা ftp mirror.dhakacom.com কমান্ড দিয়ে mirror.dhakacom.com এ যুক্ত হয়েছি। তারপর আমাদের নাম অর্থাৎ ইউজারনেম জানতে চেয়েছে। আমরা দিয়েছি anonymous এবং পাসওয়ার্ড জানতে চাইলে হিজিবিজি যা ইচ্ছে তাই পাসওয়ার্ড দিয়েছি। এবং দেখাচ্ছে যে আমরা সাক্সেসফুলি লগিন করেছি। এরপর আমাদের জন্য ftp> প্রম্পট এসেছ।

ftp> cd ubuntu-releases/trusty
250 Directory successfully changed.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              27 Feb 19 22:21 FOOTER.html
-rw-r--r--    1 0        0            2943 Mar 10 05:59 HEADER.html
-rw-r--r--    1 0        0             307 Mar 26 19:18 MD5SUMS
-rw-r--r--    1 0        0             844 Feb 19 22:21 MD5SUMS-metalink
-rw-r--r--    1 0        0             198 Feb 19 22:21 MD5SUMS-metalink.gpg
-rw-r--r--    1 0        0             198 Mar 26 19:18 MD5SUMS.gpg
-rw-r--r--    1 0        0             347 Mar 26 19:18 SHA1SUMS
-rw-r--r--    1 0        0             198 Mar 26 19:18 SHA1SUMS.gpg
-rw-r--r--    1 0        0             467 Mar 26 19:18 SHA256SUMS
-rw-r--r--    1 0        0             198 Mar 26 19:18 SHA256SUMS.gpg
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.iso -> ../.pool/ubuntu-14.04.2-desktop-amd64.iso
-rw-r--r--    1 0        0           40180 Feb 19 22:17 ubuntu-14.04.2-desktop-amd64.iso.torrent
lrwxrwxrwx    1 0        0              47 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.iso.zsync -> ../.pool/ubuntu-14.04.2-desktop-amd64.iso.zsync
lrwxrwxrwx    1 0        0              42 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.list -> ../.pool/ubuntu-14.04.2-desktop-amd64.list
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-desktop-amd64.manifest -> ../.pool/ubuntu-14.04.2-desktop-amd64.manifest
-rw-r--r--    1 0        0           46233 Feb 19 22:21 ubuntu-14.04.2-desktop-amd64.metalink
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.iso -> ../.pool/ubuntu-14.04.2-desktop-i386.iso
-rw-r--r--    1 0        0           40459 Feb 19 22:17 ubuntu-14.04.2-desktop-i386.iso.torrent
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.iso.zsync -> ../.pool/ubuntu-14.04.2-desktop-i386.iso.zsync
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.list -> ../.pool/ubuntu-14.04.2-desktop-i386.list
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-desktop-i386.manifest -> ../.pool/ubuntu-14.04.2-desktop-i386.manifest
-rw-r--r--    1 0        0           45906 Feb 19 22:21 ubuntu-14.04.2-desktop-i386.metalink
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-server-amd64.iso -> ../.pool/ubuntu-14.04.2-server-amd64.iso
-rw-r--r--    1 0        0           24138 Feb 19 22:20 ubuntu-14.04.2-server-amd64.iso.torrent
lrwxrwxrwx    1 0        0              46 Feb 20 02:18 ubuntu-14.04.2-server-amd64.iso.zsync -> ../.pool/ubuntu-14.04.2-server-amd64.iso.zsync
lrwxrwxrwx    1 0        0              42 Feb 20 02:18 ubuntu-14.04.2-server-amd64.jigdo -> ../.pool/ubuntu-14.04.2-server-amd64.jigdo
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-server-amd64.list -> ../.pool/ubuntu-14.04.2-server-amd64.list
-rw-r--r--    1 0        0           45905 Feb 19 22:21 ubuntu-14.04.2-server-amd64.metalink
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-server-amd64.template -> ../.pool/ubuntu-14.04.2-server-amd64.template
lrwxrwxrwx    1 0        0              39 Feb 20 02:18 ubuntu-14.04.2-server-i386.iso -> ../.pool/ubuntu-14.04.2-server-i386.iso
-rw-r--r--    1 0        0           23457 Feb 19 22:21 ubuntu-14.04.2-server-i386.iso.torrent
lrwxrwxrwx    1 0        0              45 Feb 20 02:18 ubuntu-14.04.2-server-i386.iso.zsync -> ../.pool/ubuntu-14.04.2-server-i386.iso.zsync
lrwxrwxrwx    1 0        0              41 Feb 20 02:18 ubuntu-14.04.2-server-i386.jigdo -> ../.pool/ubuntu-14.04.2-server-i386.jigdo
lrwxrwxrwx    1 0        0              40 Feb 20 02:18 ubuntu-14.04.2-server-i386.list -> ../.pool/ubuntu-14.04.2-server-i386.list
-rw-r--r--    1 0        0           45578 Feb 19 22:21 ubuntu-14.04.2-server-i386.metalink
lrwxrwxrwx    1 0        0              44 Feb 20 02:18 ubuntu-14.04.2-server-i386.template -> ../.pool/ubuntu-14.04.2-server-i386.template
-rw-r--r--    1 0        0         2551408 Apr 14  2014 wubi.exe
226 Directory send OK.

আমরা প্রথমে cd ubuntu-releases/trusty দিয়ে ubuntu-releases/trusty ফোল্ডারে ঢুকেছি। এখানে উবুন্টু ১৪.০৪ এর ইমেজ ও অন্যান্য ফাইল আছে। আমরা ls কমান্ড দিয়ে ফাইলগুলোর একটি লিস্ট পেয়েছি।

ftp> lcd ~/Desktop
Local directory now /home/me/Desktop
ftp> get MD5SUMS
local: MD5SUMS remote: MD5SUMS
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for MD5SUMS (307 bytes).
226 File send OK.
307 bytes received in 0.01 secs (30.8 kB/s)

আমরা প্রথমে lcd ~/Desktop/ কমান্ড দিয়ে আমাদের লোকাল ডিরেক্টরি ~/Desktop করে নিলাম। অর্থাৎ, যে ফাইলটি ডাউনলোড করবো তা ডেস্কটপে থাকবে। তারপর আমরা MD5SUMS নামের ফাইলটি ডাউনলোড করতে get MD5SUMS কমান্ডটি দিয়েছি।

ftp> exit
221 Goodbye.

সবশেষে exit কমান্ড দিয়ে এফটিপি সংযোগ বন্ধ করেছি।

আমরা ftp এর বদলে lftp ও ব্যবহার করতে পারতাম। এটি anonymous একাউন্টে অটোমেটিক লগিন করে। ট্যাব কম্প্লিশন এবং অটোমেটিক রিট্রাইও সাপোর্ট করে।

wget

wget একটি মাল্টিপ্রোটোকল ডাউনলোড ম্যানেজার। এর কমান্ড কাঠামো:

wget file_url

যেমন howtocode.com.bd এর প্রথম পাতা আমরা ডাউনলোড করতে পারি wget http://howtocode.com.bd/index.html কমান্ড দিয়ে। wget দিয়ে ডাউনলোড করার সময় আমরা ctrl-c চেপে ডাউনলোড বন্ধ করতে পারি। পরবর্তীতে সেই ডাউনলোড চালু করতে -c অপশন যোগ করতে হয়। প্রথম ডাউনলোডের সময়ও যদি -c ব্যবহার করেন তো ক্ষতি নেই। তাই সবসময়ই আপনি এভাবে ডাউনলোড করতে পারেন:

me@howotocode-pc:~$ wget -c http://howtocode.com.bd/index.html
--2015-03-31 13:21:32--  http://howtocode.com.bd/index.html
Resolving howtocode.com.bd (howtocode.com.bd)... 192.30.252.153, 192.30.252.154
Connecting to howtocode.com.bd (howtocode.com.bd)|192.30.252.153|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: /index.html [following]
--2015-03-31 13:21:34--  http://howtocode.com.bd/index.html
Connecting to howtocode.com.bd (howtocode.com.bd)|192.30.252.153|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.howtocode.com.bd/index.html [following]
--2015-03-31 13:21:34--  http://www.howtocode.com.bd/index.html
Resolving www.howtocode.com.bd (www.howtocode.com.bd)... 199.27.75.133
Connecting to www.howtocode.com.bd (www.howtocode.com.bd)|199.27.75.133|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 45059 (44K) [text/html]
Saving to: ‘index.html’

100%[========================================>] 45,059      61.2KB/s   in 0.7s   

2015-03-31 13:21:36 (61.2 KB/s) - ‘index.html’ saved [45059/45059]

aria2

এটি আমার দেখা সবচেয়ে দারুণ ডাউনলোড ম্যানেজার। এর অনেক অনেক ফাংশনালিটি। এটি পাবেন aria2 প্যাকেজে এবং কমান্ডটি হল aria2c। এর আর্গুমেন্ট হিসেবে আপনি লিঙ্ক দিতে পারেন, টরেন্ট ফাইল বা ম্যাগনেট লিঙ্ক দিতে পারেন। এমনকি একই ফাইলের যদি একাধিক ডাউনলোড লিঙ্ক, টরেন্ট লিঙ্ক ইত্যাদি যদি থাকে আপনি আর্গুমেন্ট হিসেবে সবগুলো যোগ করলে সবজায়গা থেকে ডাউনলোড করে একটি ফাইল হিসেবে সেভ করতে পারে।

Last updated