ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
scp (secure copy) က SSH protocol အပေါ် အခြေခံပြီး ဖိုင်ကို local machine နဲ့ remote server ကြား copy လုပ်ပေးပါတယ် — scp local-file.txt user@server:/remote/path/ ပုံစံနဲ့ upload လုပ်, scp user@server:/remote/file.txt . ပုံစံနဲ့ download လုပ်ပါတယ် (: ရှေ့မှာ server info, နောက်မှာ path)။ scp -r ကတော့ folder တစ်ခုလုံး copy လုပ်ဖို့ (cp -r, rm -r ရဲ့ pattern အတိုင်းပါပဲ)။ rsync ကတော့ ပိုအဆင့်မြင့်ပါတယ် — ဖိုင်တွေ ပြောင်းလဲသွားတဲ့ အပိုင်းကိုပဲ ပြန်ကူးပေးတာမို့ (delta transfer) ဖိုင်ကြီးတွေ ထပ်ခါထပ်ခါ sync လုပ်ရင် scp ထက် အများကြီး မြန်ပါတယ်, --delete flag ထည့်ရင် destination ထဲက source မှာမရှိတော့တဲ့ ဖိုင်ကိုပါ ဖျက်ပေးပါတယ်။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
Website ဖိုင်တွေကို local machine ကနေ server ဆီ တစ်ကြိမ်ချင်း upload လုပ်ချင်ရင် scp ကို လွယ်ကူစွာ သုံးလို့ရပါတယ် — scp -r ./website user@server:/var/www/mysite။ Project folder ကို server ဆီ ပုံမှန် sync ထားချင်ရင် (deploy workflow မှာ) rsync -avz ./project/ user@server:/home/user/project/ ကို သုံးလေ့ရှိပါတယ် (-a = archive mode, permission/timestamp ထိန်း, -v = verbose, -z = compress) — file ပြောင်းသွားတဲ့ အပိုင်းလေးလေးကိုပဲ ပြန်ပို့တာမို့ deploy time လျော့ချနိုင်ပါတယ်။
အတူတူ terminal ထဲ စမ်းမယ်
scp report.pdf alice@203.0.113.10:/home/alice/
scp -r ./website alice@203.0.113.10:/var/www/mysite
scp alice@203.0.113.10:/home/alice/backup.tar.gz .
rsync -avz ./project/ alice@203.0.113.10:/home/alice/project/scp command run ပြီးနောက် progress percentage/speed ပြသပြီး ဖိုင်ကို destination ဆီ ရောက်သွားမည်။၅ မိနစ် စမ်းကြည့်
Local file တစ်ခုကို scp syntax (server IP အစစ်မလို, syntax ကိုပဲ ကျင့်) ဖြင့် remote path ဆီ ပို့မယ့် command တစ်ကြောင်း ကိုယ်တိုင် ရေးကြည့်ပါ။
သတိလေးတစ်ချက်
rsync --delete ကို destination path မှားနေတဲ့အချိန်မှာ run ရင် server ပေါ်က ဖိုင်များစွာ အလိုအလျောက် ဖျက်ခံရနိုင်ပါတယ် — --delete flag သုံးခင် dry-run (rsync --dry-run) ဖြင့် ဘာဖြစ်မလဲ အရင် preview ကြည့်ပါ။