−25%

روی پرداخت سالانه Windows، تا ۳۱ اکتبر. مشاهده پلن‌ها

EQVPS

چطور فایل‌ها را به VPS منتقل کنیم: scp، rsync و SFTP

با scp فایل‌ها را به سرور بفرستید و از آن بگیرید، پوشه‌های بزرگ را با rsync و قابلیت ادامه همگام کنید یا از کلاینت SFTP استفاده کنید، حتی روی NAT با پورت SSH شخصی.

دیر یا زود فایل‌ها باید به سرور برسند: بیلد یک سایت، dump پایگاه‌داده، پیکربندی‌ای که محلی نوشته‌اید. برای این کار سرور FTP لازم ندارید: SSH از قبل سه ابزار خوب در اختیارتان می‌گذارد. همه مثال‌ها از آدرس‌های مستندات استفاده می‌کنند؛ آن‌ها را با آدرس سرور خود جایگزین کنید.

مشخصات اتصال خود را بدانید

scp: کپی یک فایل یا پوشه

آپلود یک فایل:

scp backup.sql root@203.0.113.10:/root/

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

scp root@203.0.113.10:/var/log/nginx/access.log .

یک پوشه کامل:

scp -r ./site root@203.0.113.10:/var/www/

روی پلن NAT پورت را با -P بزرگ اضافه کنید:

scp -P 20123 backup.sql root@your-nat-host:/root/

rsync: ابزار درست برای پوشه‌ها

rsync فقط تفاوت‌ها را می‌فرستد، پیشرفت را نشان می‌دهد و اگر اتصال قطع شود ادامه می‌دهد. باید در هر دو طرف نصب باشد (apt install -y rsync).

rsync -avzP ./site/ root@203.0.113.10:/var/www/site/

با پورت SSH سفارشی:

rsync -avzP -e "ssh -p 20123" ./site/ root@your-nat-host:/var/www/site/

برای اینکه مقصد آینه دقیق شود (و فایل‌هایی که محلی حذف کرده‌اید آنجا هم حذف شوند)، --delete را اضافه کنید، اما اول ببینید چه کاری می‌کند:

rsync -avzP --delete --dry-run ./site/ root@203.0.113.10:/var/www/site/

مراقب اسلش انتهایی باشید. ./site/ محتویات site را کپی می‌کند؛ ./site خود پوشه را داخل مقصد کپی می‌کند. با --delete همین تفاوت تعیین می‌کند کدام پوشه خالی شود.

SFTP: تعاملی یا گرافیکی

کلاینت خط فرمان مثل یک مدیر فایل کوچک کار می‌کند:

sftp -P 20123 root@your-nat-host
sftp> put backup.sql
sftp> get /etc/nginx/nginx.conf
sftp> exit

رابط گرافیکی را ترجیح می‌دهید؟ FileZilla، WinSCP یا Cyberduck با همان مشخصات وصل می‌شوند: پروتکل SFTP، میزبان شما، پورت ۲۲ (یا پورت NAT شما)، کاربر root و کلید SSH یا رمز عبور شما.

سریع‌تر با کلیدهای SSH

همه این ابزارها از SSH استفاده می‌کنند، پس یک کلید SSH درخواست‌های رمز عبور را متوقف می‌کند و اجازه می‌دهد انتقال‌ها را از cron خودکار کنید. اگر هنوز نکرده‌اید: احراز هویت با کلید SSH. سرورهای جدید EQVPS تا وقتی به کلید بروید رمز root پنل را می‌پذیرند و توصیه می‌کنیم همان روز اول این کار را بکنید.

انتقال‌های بزرگ

برای ده‌ها گیگابایت، rsync تنها انتخاب معقول است: اگر اتصال قطع شد، همان دستور را دوباره اجرا کنید تا از همان جایی که مانده ادامه دهد. آن را داخل tmux یا screen روی دستگاه فرستنده اجرا کنید تا بستن لپ‌تاپ متوقفش نکند.

مرتبط

پرسش‌های متداول

تفاوت scp و rsync چیست؟

scp هر بار همه‌چیز را کپی می‌کند. rsync دو طرف را مقایسه می‌کند و فقط تغییرات را می‌فرستد، انتقال‌های قطع‌شده را ادامه می‌دهد و می‌تواند یک پوشه را دقیقاً آینه کند. برای یک فایل scp کافی است؛ برای پوشه‌هایی که مرتب همگام می‌کنید از rsync استفاده کنید.

چطور از پورت SSH غیراستاندارد استفاده کنم؟

scp و sftp از -P بزرگ استفاده می‌کنند (scp -P 20123)، ssh از -p کوچک، و rsync آن را این‌طور می‌گیرد: rsync -e 'ssh -p 20123'. روی پلن‌های NAT در EQVPS پورت SSH شخصی در پنل نشان داده می‌شود.

آیا می‌توانم از کلاینت گرافیکی استفاده کنم؟

بله. هر کلاینت SFTP (FileZilla، WinSCP، Cyberduck) با همان میزبان، پورت، کاربر و کلید SSH یا رمز عبوری که برای SSH استفاده می‌کنید وصل می‌شود. پروتکل SFTP را انتخاب کنید، نه FTP.

آیا از Windows کار می‌کند؟

Windows 10 و 11 شامل OpenSSH هستند، پس scp و sftp در PowerShell دقیقاً مثل اینجا کار می‌کنند. rsync همراهش نیست؛ از WSL استفاده کنید یا از قابلیت همگام‌سازی WinSCP.

اسلش انتهایی در rsync یعنی چه؟

'rsync -a site/ dest/' محتویات site را داخل dest کپی می‌کند. 'rsync -a site dest/' پوشه dest/site را می‌سازد. همراه با --delete، اشتباه در این مورد می‌تواند پوشه اشتباهی را خالی کند، پس اول با --dry-run اجرا کنید.

نظرات

هنوز نظری نیست. اولین نفر باشید.

یک نظر بگذارید

نظرات پیش از نمایش بررسی می‌شوند.