اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

10 نمونه از دستور scp برای انتقال فایل ها و فولدرها در لینوکس

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    10 نمونه از دستور scp برای انتقال فایل ها و فولدرها در لینوکس

    از آنجا که محیط GUI در سرورهای لینوکس معمولا نصب نمی شود، ادمین های لینوکس باید با محیط CLI (ترمینال لینوکس) آشنا باشند. SSH محبوب ترین پروتکل برای مدیریت از راه دور سرورها می باشد. دستور SCP یکی از دستورات SSH است که برای کپی کردن فایلها بین سرورها استفاده می شود.

    دستور زیر به شما اجازه خواهد داد که “source_file_name” را به “destination_folder” در “destination_host” و با استفاده از “username account” کپی کنید.


    ساختار اولیه ی دستور SCP
    کد PHP:
    scp source_file_name username@destination_host:destination_folder 
    پارامترهای زیادی برای دستور scp وجود دارد که شما می توانید از آنها استفاده کنید.



    نشان دادن اطلاعات جزئی تر از پروسه ی scp را با استفاده از آپشن –v

    دستور scp بدون پارامتر، فایل ها را در پس زمینه کپی خواهد کرد. و کاربر هیچ پروسس و خطایی را نخواهد دید. شما می توانید از گزینه ی –v برای پرینت کردن اطلاعات در صفحه استفاده کنید. این به شما در عیب یابی و مشکلات پیکربندی کمک خواهد کرد.
    کد PHP:
    pungki@mint ~/Documents scp -v Label.pdf mrarianto@202.x.x.x:. 
    نمونه خروجی :
    کد PHP:
    Executingprogram /usr/bin/ssh host 202.x.x.xuser mrariantocommand scp --.
    OpenSSH_6.0p1 Debian-3OpenSSL 1.0.1c 10 May 2012
    debug1
    Reading configuration data /etc/ssh/ssh_config
    debug1
    : /etc/ssh/ssh_config line 19Applying options for *
    debug1Connecting to 202.x.x.[202.x.x.xport 22.
    debug1
    Connection established.
    debug1Host '202.x.x.x' is known and matches the RSA host key.
    debug1Found key in /home/pungki/.ssh/known_hosts:1
    debug1
    ssh_rsa_verifysignature correct
    debug1
    Next authentication methodpassword
    mrarianto
    @202.x.x.x's password:
    debug1: Authentication succeeded (password).
    Authenticated to 202.x.x.x ([202.x.x.x]:22).
    Sending file modes: C0770 3760348 Label.pdf
    Sink: C0770 3760348 Label.pdf
    Label.pdf 100% 3672KB 136.0KB/s 00:27
    Transferred: sent 3766304, received 3000 bytes, in 65.2 seconds
    Bytes per second: sent 57766.4, received 46.0
    debug1: Exit status 0 


    نشان دادن زمان های اصلاح و زمان های دسترسی به فایل اصلی

    آپشن –p در این مورد به شما کمک خواهد کرد. یک زمان تخمینی و سرعت ارتباط به شما نشان داده خواهد شد.
    کد PHP:
    pungki@mint ~/Documents scp -p Label.pdf mrarianto@202.x.x.x:. 
    نمونه خروجی :
    کد PHP:
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 126.6KB/s 00:29 


    ایجاد انتقال سریعتر فایل با استفاده از آپشن –C

    یکی از پارامترهایی که می توانند فایلهای شما را سریعتر انتقال دهند گزینه ی –C است. پارامتر –C همچنین برای فشرده سازی فایل ها بکار میرود و این فشرده سازی تنها در شبکه بکار می رود و زمانی که فایل به سرور رسید، حجم اولیه ی خود را به دست می آورد.

    به دستورات زیر نگاه کنید. ما از فایلی با حجم 93 MB استفاده کرده ایم.
    کد PHP:
    pungki@mint ~/Documents scp -pv messages.log mrarianto@202.x.x.x:. 
    نمونه خروجی :
    کد PHP:
    Executingprogram /usr/bin/ssh host 202.x.x.xuser mrariantocommand scp ---.
    OpenSSH_6.0p1 Debian-3OpenSSL 1.0.1c 10 May 2012
    debug1
    Reading configuration data /etc/ssh/ssh_config
    debug1
    : /etc/ssh/ssh_config line 19Applying options for *
    debug1Connecting to 202.x.x.[202.x.x.xport 22.
    debug1
    Connection established.
    debug1identity file /home/pungki/.ssh/id_rsa type -1
    debug1
    Found key in /home/pungki/.ssh/known_hosts:1
    debug1
    ssh_rsa_verifysignature correct
    debug1
    Trying private key: /home/pungki/.ssh/id_rsa
    debug1
    Next authentication methodpassword
    mrarianto
    @202.x.x.x's password:
    debug1: Authentication succeeded (password).
    Authenticated to 202.x.x.x ([202.x.x.x]:22).
    debug1: Sending command: scp -v -p -t .
    File mtime 1323853868 atime 1380425711
    Sending file timestamps: T1323853868 0 1380425711 0
    messages.log 100% 93MB 58.6KB/s 27:05
    Transferred: sent 97614832, received 25976 bytes, in 1661.3 seconds
    Bytes per second: sent 58758.4, received 15.6
    debug1: Exit status 0 
    کپی کردن فایل ها بدون –C زمانی برابر با 1661.3 ثانیه طول کشیده است. حال نتیجه را با استفاده از گزینه ی –C مقایسه کنید.
    کد PHP:
    pungki@mint ~/Documents scp -Cpv messages.log mrarianto@202.x.x.x:. 
    نمونه خروجی :
    کد PHP:
    Executingprogram /usr/bin/ssh host 202.x.x.xuser mrariantocommand scp ---.
    OpenSSH_6.0p1 Debian-3OpenSSL 1.0.1c 10 May 2012
    debug1
    Reading configuration data /etc/ssh/ssh_config
    debug1
    : /etc/ssh/ssh_config line 19Applying options for *
    debug1Connecting to 202.x.x.[202.x.x.xport 22.
    debug1
    Connection established.
    debug1identity file /home/pungki/.ssh/id_rsa type -1
    debug1
    Host '202.x.x.x' is known and matches the RSA host key.
    debug1Found key in /home/pungki/.ssh/known_hosts:1
    debug1
    ssh_rsa_verifysignature correct
    debug1
    Next authentication methodpublickey
    debug1
    Trying private key: /home/pungki/.ssh/id_rsa
    debug1
    Next authentication methodpassword
    mrarianto
    @202.x.x.x's password:
    debug1: Enabling compression at level 6.
    debug1: Authentication succeeded (password).
    Authenticated to 202.x.x.x ([202.x.x.x]:22).
    debug1: channel 0: new [client-session]
    debug1: Sending command: scp -v -p -t .
    File mtime 1323853868 atime 1380428748
    Sending file timestamps: T1323853868 0 1380428748 0
    Sink: T1323853868 0 1380428748 0
    Sending file modes: C0600 97517300 messages.log
    messages.log 100% 93MB 602.7KB/s 02:38
    Transferred: sent 8905840, received 15768 bytes, in 162.5 seconds
    Bytes per second: sent 54813.9, received 97.0
    debug1: Exit status 0
    debug1: compress outgoing: raw data 97571111, compressed 8806191, factor 0.09
    debug1: compress incoming: raw data 7885, compressed 3821, factor 0.48 
    شما می توانید ببینید که با استفاده از فشرده سازی تنها در زمان 162.5 ثانیه انتقال انجام شده است.این 10 بار سریعتر از قبل است. اگر شما بخواهید فایل های زیادی را از طریق شبکه بخواهید انتقال دهید گزینه ی –C بسیار مفید خواهد بود.

    نکته ای که شما باید به آن توجه کنید این است که روش فشرده سازی بروی هر فایلی کار نمی کند. زمانی که فایل از قبل فشرده شده است استفاده از این گزینه تاثیری ندارد. فایل هایی همچون .zip و .rar و عکس ها و فایل های .iso از این دسته فایل های هستند.



    انتخاب روش دیگری برای رمزگذاری فایلها

    به طور پیش فرض scp از AES-128 برای رمزنگاری فایلها استفاده می کند. برای تغییر دادن آن می توانید از گزینه ی –c استفاده کنید.
    کد PHP:
    pungki@mint ~/Documents scp -c 3des Label.pdf mrarianto@202.x.x.x:.
     
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 282.5KB/s 00:13 
    در دستور بالا از رمزنگاری 3des برای فایل های استفاده شده است. لطفا دقت کنید که –c حروف کوچک است.



    محدودکردن مصرف پهنای باند

    پارامتر دیگری که ممکن است استفاده شود پارامتر –l می باشد. این پارامتر مصرف پهنای باند را محدود خواهد کرد. این بسیار مفید است زمانی که شما می خواهید فایل های زیادی را با اسکریپتی به صورت خودکار انتقال دهید اما شما نمی خواهید کل پهنای باند توسط scp گرفته شود.
    کد PHP:
    pungki@mint ~/Documents scp -l 400 Label.pdf mrarianto@202.x.x.x:.
     
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 50.3KB/s 01:13 
    مقدار 400 به همراه گزینه ی –l نشان می دهد که محدودیت پهنای باند برای دستور scp بیشتر از 50 kB/sec نباشد. نکته ای باید به خاطر بسپارید این که در دستور از kilobit/second(kbps/s) استفاده می شود، به این معنی که هر 8 بیت برابر با 1 بایت است.



    مشخص کردن پورت ها با استفاده از scp

    معمولا scp به صورت پیش فرض از پورت 22 استفاده می کند. اما به دلایل امنیتی شما می توانید پورت را تغییر دهید. به عنوان مثال ما از پورت 2249 استفاده میکنیم.
    کد PHP:
    pungki@mint ~/Documents scp -P 2249 Label.pdf mrarianto@202.x.x.x:.
     
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 262.3KB/s 00:14 
    دقت کنید که از P بزرگ استفاده کنید.



    کپی کردن فایل ها در داخل دایرکتوری به صورت بازگشتی

    گاهی اوقات ما نیاز داریم که تمامی فایل ها و دایرکتوری ها را کپی کنیم. ما می توانیم این کار را با استفاده از آپشن –r انجام دهیم.
    کد PHP:
    pungki@mint ~/Documents scp -r documents mrarianto@202.x.x.x:.
     
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 282.5KB/s 00:13
    scp.txt 100% 10KB 9.8KB/s 00:00 
    زمانی که پروسه ی کپی تمام شد، در سرور مقصد ما دایرکتوری document را با تمامی فایل های درون آن خواهیم دید.



    غیرفعال کردن پیشرفت پروسس و پیام های هشدار

    اگر شما نمی خواهید پیشرفت پروسس و پیام های هشدار را ببینید، شما می توانید آنرا با استفاده از –q غیرفعال کنید.
    کد PHP:
    pungki@mint ~/Documents scp -q Label.pdf mrarianto@202.x.x.x:.
     
    mrarianto@202.x.x.x's password:
    pungki@mint ~/Documents $ 


    کپی کردن فایل ها با استفاده از scp ازطریق Proxy

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

    در اینجا یک سناریو وجود دارد. آدرس پروکسی 10.0.96.6 و پورت آن 8080 میباشد، همچنین پروکسی با احراز هویت کاربر پیاده سازی شده است. ابتدا شما نیاز دارید که فایل “~/.ssh/config” را ایجاد کنید. سپس شما این دستور را در داخل آن قرار می دهید.
    کد PHP:
    ProxyCommand /usr/bin/corkscrew 10.0.96.6 8080 %%~/.ssh/proxyauth 
    سپس شما نیاز دارید که فایل “~/.ssh/proxyauth” را که شامل خط زیر است را ایجاد کنید.
    کد PHP:
    myusername:mypassword 
    بعد از آن شما می توانید به طور نامرئی از scp استفاده کنید.

    لطفا توجه کنید که corkscrew روی سیستم شما هنوز نصب نشده است. من بروی سیتم mint خودم ابتدا نیاز دارم آنرا به شکل زیر نصب کنم.
    کد PHP:
    apt-get install corkscrew 
    برای سیستم های بر پایه yum به صورت زیر آنرا نصب کنید.
    کد PHP:
    # yum install corkscrew 
    نکته ی دیگری که باید توجه کنید این است که فایل “~.ssh/proxyauth” شامل username و password تان است، پس اطمینان حاصل کنید که این فایل توسط شما قابل دسترسی باشد.



    انتخاب فایل ssh_config متفاوت

    برای کاربران موبایل که اغلب بین شبکه ی شرکت و شبکه ی عمومی جابجا می شودند، این مشکل خواهد بود که مدام تنظیمات scp شان را تغییر دهند. بهتر است که ما فایل ssh_config متفاوتی را برای نیاز مان استفاده کنیم.

    سناریوی نمونه
    پروکسی در شبکه ی شرکت استفاده می شود و در شبکه ی عمومی استفاده نمی شود. و شما در شبکه جابجا شده اید.
    کد PHP:
    pungki@mint ~/Documents scp -/home/pungki/proxy_ssh_config Label.pdf
     
    mrarianto
    @202.x.x.x:.
    mrarianto@202.x.x.x's password:
    Label.pdf 100% 3672KB 282.5KB/s 00:13 
    به صورت پیش فرض فایل ssh_config هر کاربر در ~/.ssh/cofig قرار دارد. یک فایل خاص ssh_config برای کار با پروکسی ایجاد کنید. زمانی که شما در شبکه ی شرکت هستید، شمامی توانید از آپشن -F استفاده کنید. و زمانی که در شبکه ی عمومی هستید می توانید آنرا استفاده نکنید.


    همچنین توصیه میشود مطالعه کنید :

    دستور پیشرفته copy در لینوکس برای نمایش میزان پیشرفت کپی فایل ها و دایرکتوری های بزرگ

    دستور pv برای مانیتور روند کپی، بک آپ و فشرده سازی اطلاعات در لینوکس

    pscp - انتقال/کپی فایل ها به چندین سرور لینوکس با استفاده از تنها یک شل

    10 نمونه از دستورات sFTP برای انتقال فایل ها روی سرورهای لینوکس راه دور

    10 مثال از دستور Rsync در لینوکس

    دستورات nc و pv برای انتقال فایل ها بین دو کامپیوتر


    موفق باشید.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-24-2021, 12:04 PM.
    اینستاگرام انجمن لینوکس ایران : https://www.instagram.com/iranlinuxforum

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X