دیر یا زود فایلها باید به سرور برسند: بیلد یک سایت، dump پایگاهداده، پیکربندیای که محلی نوشتهاید. برای این کار سرور FTP لازم ندارید: SSH از قبل سه ابزار خوب در اختیارتان میگذارد. همه مثالها از آدرسهای مستندات استفاده میکنند؛ آنها را با آدرس سرور خود جایگزین کنید.
مشخصات اتصال خود را بدانید
- پلن با IP اختصاصی:
root@203.0.113.10، پورت ۲۲. - پلن NAT: میزبان و پورت SSH شخصی شما در پنل نشان داده میشوند (مثلاً پورت 20123). همه دستورات زیر به آن پورت نیاز دارند؛ دسترسی NAT چطور کار میکند را ببینید.
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/
-aمجوزها و زمانها را حفظ میکند،-vفایلها را فهرست میکند،-zفشرده میکند،-Pپیشرفت را نشان میدهد و امکان ادامه میدهد.
با پورت 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 روی دستگاه فرستنده اجرا کنید تا بستن لپتاپ متوقفش نکند.
نظرات
هنوز نظری نیست. اولین نفر باشید.