ftp - پروتکل انتقال فایل

دستور ftp همون‌طور که از اسمش هم معلوم هست برای ارتباط با ftp server و کلا کار با پروتکل ftp هست.

اگر با ftp آشنایی ندارین این مطلب رو مطالعه کنین.

متصل شدن به ftp server

برای اتصال به ftp server فقط لازم هست که ادرس آی‌پی یا دامنه سرور مورد نظرتون رو در جلوی دستور بنویسین و سپس نام کاربری و پسورد تون رو وارد کنین.

در زیر نام کاربری من aliali است.

$ ftp 172.16.134.131
Connected to 172.16.134.131.
220 (vsFTPd 2.3.2)
Name (172.16.134.131:aliali): aliali
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

دستورات قابل استفاده

تمام دستوراتی که قابل استفاده هستن با نوشتن دستور helpیا ؟قابل دیدن هستن:

ftp> help
Commands may be abbreviated.  Commands are:

!        dir        mdelete        qc        site
$        disconnect    mdir        sendport    size
account        exit        mget        put        status
append        form        mkdir        pwd        struct
ascii        get        mls        quit        system
bell        glob        mode        quote        sunique
binary        hash        modtime        recv        tenex
bye        help        mput        reget        tick
case        idle        newer        rstatus        trace
cd        image        nmap        rhelp        type
cdup        ipany        nlist        rename        user
chmod        ipv4        ntrans        reset        umask
close        ipv6        open        restart        verbose
cr        lcd        prompt        rmdir        ?
delete        ls        passive        runique
debug        macdef        proxy        send
ftp>

همون‌طور که می‌بینین بعضی از دستورات، دستوراتی هستن که به طور معمول در ترمینال استفاده می‌کنین .  در زیر بعضی از دستورات توضیح داده شده.

help: نشون دادن خروجی بالا

?: مثل helpخروجی بالا رو نشون میده

asciii: تغییر به حالت ترنسفر فایل با فرمت txt

binary: برای عبور فایل با فرمت غیر txt

by: برای بستن کانکشن و خروج از ftp

cd: برای تغییر دایرکتوری جاری در سیستم ریموت

lcd: برای تغییر دایرکتوری جاری در سیستم لوکال

delete: برای پاک کردن فایل در سیستم ریموت

debug: با زدن این دستور اطلاعاتی که در ترمینال نوشته می‌شود بیشتر می‌شود که برای اشکال‌زدایی میشه استفاده کرد.

close: برای بستن کانکشن (از محیط ftp خارج نمیشه)

disconnect: هم معنی برای close

get: برای دانلود فایل (فقط برای دانلود یک دونه فایل به طور هم‌زمان میشه استفاده کرد)

put: برای آپلود فایل (فقط برای اپلود یک دونه فایل به طور هم زمان میشه استفاده کرد)

mget: برای دانلود چندین فایل به طور هم‌زمان. از glob expansion هم پشتیبانی می‌کنه که این قابلیت بستگی به سیستم ریموت داره چون expansion در سیستم ریموت انجام میشه.

mput: مثل mgetولی برای آپلود کردن

pwd: مکان کنونی‌تون رو در سیستم ریموت میگه

rename: برای تغییر اسم فایل در سیستم ریموت

rmdir: برای پاک کردن دایرکتوری

status: اطلاعاتی در مورد اتصال و تنظیمات‌تون میده

!: برای برگشتن به شل سیستم اصلی

آپلود یک/چند فایل به سیستم ریموت

برای آپلود یک فایل از put و برای آپلود چندین فایل به طور هم زمان از mput استفاده می‌کنیم.

قبل از آپلود یک فایل اول با دستور lcd به اون دایرکتوری در سیستم لوکال برین وگرنه ارور می‌گیرین.

آپلود یک فایل

ftp> ls
B/s)
ftp>
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1009     1011     90027275 Jun 04 14:53 robat.mp4
226 Directory send OK.
ftp>

آپلود چندین فایل

ftp> lcd /home/alieblice/FTP/
Local directory now /home/alieblice/FTP
ftp> mput *.jpg
mput 1.jpg?
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
33541 bytes sent in 0.00 secs (54319.9 kB/s)
mput 2.jpg?
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
48366 bytes sent in 0.00 secs (74616.8 kB/s)
mput 4.jpg?
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
18210 bytes sent in 0.00 secs (45951.4 kB/s)
mput 5.jpg?
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
35436 bytes sent in 0.00 secs (58160.5 kB/s)
mput 6.jpg?
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 Transfer complete.
15111 bytes sent in 0.00 secs (16865.0 kB/s)
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1009     1011        33541 Jun 04 15:13 1.jpg
-rw-------    1 1009     1011        48366 Jun 04 15:13 2.jpg
-rw-------    1 1009     1011        18210 Jun 04 15:13 4.jpg
-rw-------    1 1009     1011        35436 Jun 04 15:13 5.jpg
-rw-------    1 1009     1011        15111 Jun 04 15:13 6.jpg
-rw-------    1 1009     1011     90027275 Jun 04 14:53 robat.mp4
226 Directory send OK.
ftp>

همون‌طور که در خروجی بالا می‌بینین از من برای هر فایل سوال پرسیده شده که آیا فایل رو آپلود کند؟ برای این‌که دیگه سوال نپرسه حالت interactive رو با دستور prompt خاموش کنین.

دانلود یک /چند فایل از سیستم ریموت

برای دانلود یک فایل از get و برای دانلود چندین فایل به‌طور هم‌زمان از mget استفاده می‌کنیم.

دانلود یک فایل

ftp> get robat.mp4
local: robat.mp4 remote: robat.mp4
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for robat.mp4 (90027275 bytes).
226 Transfer complete.
90027275 bytes received in 1.94 secs (45402.8 kB/s)
ftp>

دانلود چندین فایل

ftp> mget 1.jpg 2.jpg 4.jpg
local: 1.jpg remote: 1.jpg
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 1.jpg (33541 bytes).
226 Transfer complete.
33541 bytes received in 0.00 secs (9485.9 kB/s)
local: 2.jpg remote: 2.jpg
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 2.jpg (48366 bytes).
226 Transfer complete.
48366 bytes received in 0.00 secs (10573.6 kB/s)
local: 4.jpg remote: 4.jpg
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for 4.jpg (18210 bytes).
226 Transfer complete.
18210 bytes received in 0.00 secs (8529.1 kB/s)
ftp>

ساخت دایرکتوری و پاک کردن آن

برای ساخت دایرکتوری از mkdir استفاده می‌کنیم و برای پاک کردن از rmdir.

ftp> mkdir test-directory
257 "/home/aliali/test-directory" created
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwx------    2 1009     1011         4096 Jun 04 15:24 test-directory
226 Directory send OK.
ftp> rmdir test-directory
250 Remove directory operation successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
226 Directory send OK.
ftp>

پاک کردن فایل

برای پاک کردن فایل از delet استفاده می‌کنیم.

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1009     1011        33541 Jun 04 15:13 1.jpg
-rw-------    1 1009     1011        48366 Jun 04 15:13 2.jpg
-rw-------    1 1009     1011        18210 Jun 04 15:13 4.jpg
-rw-------    1 1009     1011        35436 Jun 04 15:13 5.jpg
-rw-------    1 1009     1011        15111 Jun 04 15:13 6.jpg
-rw-------    1 1009     1011     90027275 Jun 04 14:53 robat.mp4
226 Directory send OK.
ftp> delet 1.jpg 2.jpg
250 Delete operation successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-------    1 1009     1011        48366 Jun 04 15:13 2.jpg
-rw-------    1 1009     1011        18210 Jun 04 15:13 4.jpg
-rw-------    1 1009     1011        35436 Jun 04 15:13 5.jpg
-rw-------    1 1009     1011        15111 Jun 04 15:13 6.jpg
-rw-------    1 1009     1011     90027275 Jun 04 14:53 robat.mp4
226 Directory send OK.
ftp>

همون‌طور که می‌بینین فقط 1.jpg رو پاک کرد و 2.jpg رو پاک نکرد. پس فقط یک فایل پاک می‌کند.

بازگشت به شل سیستم لوکال

برای برگشتن به شل سیستم اصلی که با اون اتصال ftp رو ایجاد کردیم از !استفاده می‌کنیم.  بعد از استفاده از ! برای بازگشتن به ftp دستور exit رو می‌زنیم.

جاهایی که علامت $داره یعنی shell سیستم لوکالمون.

ftp> !
$ cd FTP/
$ ls
1.jpg  2.jpg  4.jpg  robat.mp4  untitled folder
$ exit
exit
ftp>

نرم‌افزارهای گرافیکی

نرم‌افزار های گرافیکی زیادی برای کار با ftp هستش که دو موردش این‌ها هستن:

چند لینک مفید