لم أفعل هذا من قبل ، وأقوم بإنشاء نص باش شل للقيام بذلك من أجلي. سأكون أيضًا متصلًا عبر ssh للقيام ببعض الأشياء (التي أعرفها بالفعل كيف أقوم بذلك). لذلك ربما هناك طريقة لتحميل الملفات عبر ssh حتى أتمكن من فعل كل شيء في اتصال واحد؟
كيف يمكنني أن أفعل هذا؟
#!/bin/sh
cd ./files-to-upload
#upload the files
يمكنك استخدام scp
للنسخ إلى جهاز بعيد.
scp <file to upload> <username>@<hostname>:<destination path>
ربما كنت تبحث عن SCP أو ما شابه ذلك.
#!/bin/bash
cd ./files-to-upload
scp * [email protected]:/path/to/upload/files/to
بالطبع يجب أن يعدل هذا حسب رغبتك. استبدل user @ Host بمعلوماتك الحقيقية. ستتم مطالبتك بكلمة مرور للتحميل.
إذا كنت حقًا يجب استخدام ssh (بدلاً من scp) ، يمكنك القيام بما يلي:
for filename in *; do
cat $filename | ssh [email protected] "cd /path/to/upload/files/to; cat - > $filename"
done
لكن scp منتظم (مثل tangens اقتراح) هو الأفضل.
scp هو الحل الأفضل لأنه سيتم تشفيره عبر SSH.
ومع ذلك ، إذا كنت ترغب في القيام بذلك عبر بروتوكول نقل الملفات القياسي ، فراجع ncftpput. إنه مصمم خصيصًا لتحميل ملف:
NAME ncftpput - برنامج نقل ملفات الإنترنت للنصوص
SYNOPSIS ncftpput [خيارات] الملفات المحلية للدليل البعيد للمضيف البعيد ...
curl هو برنامج جيد يعالج العديد من البروتوكولات.
بالنسبة إلى مثيل ec2 ، يجب عليك تمرير ملف .pem
أيضًا ،
$scp -i ~/Desktop/Amazon.pem ~/Desktop/file.Zip [email protected]:~/data/
عندما تستخدم scp
(نسخة آمنة) الأمر الذي يتصل به العميل وإذا لم يكن لديك بالفعل بصمة محفوظة لجهاز المضيف ، فسوف نطلب منك كلمة مرور المضيف وإلا يجب أن تتصل تلقائيًا بالمضيف الذي أعتقد.