SCP ย่อมาจาก Secure Copy Protocol และใช้โปรโตคอล "Secure Shell" มีวิธีการถ่ายโอนไฟล์ระหว่างคอมพิวเตอร์ ในการถ่ายโอนนี้ คอมพิวเตอร์ทั้งสองเครื่องสามารถเป็นโฮสต์ระยะไกลหรือคอมพิวเตอร์เครื่องหนึ่งสามารถเป็นโฮสต์ในพื้นที่และอีกเครื่องหนึ่งเป็นโฮสต์ระยะไกล เมื่อไม่นานมานี้ ผู้ใช้จำนวนมากได้รับ “ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว ” เกิดข้อผิดพลาดขณะพยายามคัดลอกไฟล์ด้วย SCP
ในบทความนี้ เราจะพูดถึงสาเหตุบางประการที่ทำให้เกิดปัญหานี้ และยังให้แนวทางแก้ไขที่เป็นไปได้เพื่อแก้ไขปัญหาทั้งหมด นอกจากนี้ เราจะพิจารณาสาเหตุบางประการที่สาเหตุดังกล่าวเกิดขึ้น โปรดปฏิบัติตามคำแนะนำอย่างระมัดระวังและถูกต้องเพื่อหลีกเลี่ยงความขัดแย้ง
สาเหตุของข้อผิดพลาด “ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว” ใน SCP คืออะไร
หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายราย เราจึงตัดสินใจตรวจสอบปัญหาและคิดหาวิธีแก้ไขเพื่อแก้ไขปัญหาทั้งหมด นอกจากนี้เรายังตรวจสอบสาเหตุที่ทำให้เกิดการเรียกและระบุสาเหตุดังนี้
- คำสั่งไม่ถูกต้อง: ในบางกรณี คำสั่งที่ผู้ใช้ใช้เพื่อคัดลอกไฟล์อาจไม่ถูกต้อง คุณต้องแก้ไขคำสั่ง copy เพื่อให้เหมาะสมกับสถานการณ์ปัจจุบันที่คุณกำลังคัดลอก คำสั่งสำหรับการคัดลอกไฟล์และทั้งไดเร็กทอรีต่างกัน นอกจากนี้ คำสั่งให้คัดลอกระหว่างคอมพิวเตอร์สองเครื่องที่มีการกำหนดค่าต่างกันจะเปลี่ยนไปตามข้อกำหนด
- หมายเลขพอร์ต: อาจเป็นไปได้ว่าไม่ได้ระบุหมายเลขพอร์ตสำหรับการคัดลอกไฟล์ระหว่างคอมพิวเตอร์ ต้องส่งต่อพอร์ตที่ถูกต้องก่อนที่จะพยายามคัดลอกไฟล์ระหว่างสองโฮสต์
- การเข้าสู่ระบบไม่ถูกต้อง: หากขณะนี้คุณเข้าสู่ระบบเซิร์ฟเวอร์และพยายามคัดลอกไฟล์ไปยังเดสก์ท็อป คุณอาจพบข้อผิดพลาดนี้เนื่องจากเซิร์ฟเวอร์พยายามค้นหาเส้นทางภายในเครื่องภายในเซิร์ฟเวอร์ สิ่งนี้สามารถป้องกันได้โดยการออกจากระบบเส้นทางเซิร์ฟเวอร์
- สิทธิ์ของไฟล์: ในบางกรณี สิทธิ์ของไฟล์ที่จะคัดลอกอาจถูกจำกัดไว้ที่ "อ่านอย่างเดียว" สิ่งนี้สามารถป้องกันไม่ให้เซิร์ฟเวอร์เข้าถึงไฟล์และไม่สามารถคัดลอกได้ สิ่งสำคัญคือต้องมีสิทธิ์อ่านและเขียนสำหรับไฟล์
เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับธรรมชาติของปัญหาแล้ว เราจะดำเนินการแก้ไขต่อไป ตรวจสอบให้แน่ใจว่าได้ใช้สิ่งเหล่านี้ในลำดับเฉพาะที่แสดงเพื่อหลีกเลี่ยงความขัดแย้ง
แนวทางที่ 1:การใช้คำสั่งที่ถูกต้อง
คุณต้องใช้คำสั่งที่ถูกต้องขึ้นอยู่กับการกำหนดค่าของโฮสต์ระหว่างที่คุณต้องการโอนไฟล์ สำหรับสิ่งนี้ เราจะแสดงรายการคำสั่งบางคำสั่งที่สามารถใช้ในการถ่ายโอนไฟล์ระหว่างการกำหนดค่าโฮสต์ต่างๆ
การคัดลอกจาก Local Host ไปยัง Remote Host
Localhost คือคอมพิวเตอร์จริงที่คุณสามารถเข้าถึงได้ โฮสต์ระยะไกลเป็นที่ที่ผู้ใช้ไม่มีการเข้าถึงทางกายภาพและตั้งอยู่ในเซิร์ฟเวอร์ที่ห่างไกล ในการถ่ายโอนไฟล์จาก Localhost ไปยัง Remote Host คุณต้องใช้การกำหนดค่าคำสั่งต่อไปนี้
$ scp "the_file" your_username@the_remote_host:the/path/to/the/directory
ตัวอย่างการคัดลอกไฟล์ข้อความชื่อ “Alexa.txt ” จะเป็นดังนี้
$ scp Alexa.txt [email protected]:/some/remote/directory
ในทำนองเดียวกัน คุณสามารถคัดลอก ทั้งหมด ไดเรกทอรี ด้วยวิธีดังต่อไปนี้
$ scp -r "the_directory_to_copy" your_username@the_remote_host:the/path/to/the/directory/to/copy/to
ตัวอย่างการคัดลอกไดเร็กทอรีชื่อ “Alexa ” จะเป็นดังนี้
$ scp -r foo [email protected]:/some/remote/directory/bar
การคัดลอกจาก Remote Host ไปยัง Local Host
หากคุณต้องการคัดลอกไฟล์จาก Remote Host ไปยัง Local Host การกำหนดค่าคำสั่งจะแตกต่างจากการกำหนดค่าดั้งเดิม ด้านล่างนี้คือคำสั่งที่เหมาะสมในการคัดลอกไฟล์ระหว่าง Remote Host และ Localhost
เพื่อ คัดลอก ไฟล์ ใช้คำสั่งต่อไปนี้
$ scp your_username@the_remote_host:the_file /your/local/directory
ในการคัดลอกไฟล์ชื่อ “Alexa .txt “ ใช้คำสั่งต่อไปนี้
$ scp your_username@the_remote_host:Alexa.txt /your/local/directory
แนวทางที่ 2:การระบุหมายเลขพอร์ต
ต้องระบุหมายเลขพอร์ตของโฮสต์ระยะไกลก่อนที่จะคัดลอกไฟล์ไปยังคอมพิวเตอร์ สำหรับสิ่งนั้น เราจะเพิ่มหมายเลขพอร์ตในขณะที่เริ่มกระบวนการคัดลอก
คุณสามารถใช้คำสั่งต่อไปนี้เพื่อคัดลอกระหว่างคอมพิวเตอร์ในขณะที่ระบุ พอร์ต เลขที่
$ scp -P port_number your_username@the_remote_host:the_file /your/local/directory
คำสั่งเดียวกันนี้สามารถใช้เพื่อระบุหมายเลขพอร์ตขณะคัดลอกไปยังหรือจากโฮสต์ระยะไกล คุณเพียงแค่ต้องเพิ่ม “-P (หมายเลขพอร์ต) ” หลัง “$ scp ” ของคำสั่ง
โซลูชันที่ 3:การเปลี่ยนการอนุญาต
ต้องให้สิทธิ์ที่เหมาะสมกับไฟล์ขณะคัดลอกระหว่างคอมพิวเตอร์ ดังนั้น ในขั้นตอนนี้ เราจะระบุกระบวนการเปลี่ยนการอนุญาตของไฟล์ สำหรับสิ่งนั้น:
- ถูกต้อง –คลิก ในไฟล์ที่คุณพยายามจะคัดลอก
- คลิกที่ “คุณสมบัติ ” และเลือก “ความปลอดภัย แท็บ”
- ตรวจสอบให้แน่ใจว่ามีการอนุญาตทั้งหมดให้กับ “ระบบ ” และ “ผู้ดูแลระบบ “.
หมายเหตุ: นอกจากนี้ ตรวจสอบให้แน่ใจว่าคุณไม่ได้ลงชื่อเข้าใช้เส้นทางเซิร์ฟเวอร์ขณะคัดลอกไฟล์