จะแก้ไขข้อผิดพลาด 'ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว' ใน SCP ได้อย่างไร?

SCP ย่อมาจาก Secure Copy Protocol และเป็นไปตามโปรโตคอล“ Secure Shell” มีวิธีการถ่ายโอนไฟล์ระหว่างคอมพิวเตอร์ ในการถ่ายโอนนี้คอมพิวเตอร์ทั้งสองเครื่องสามารถเป็นโฮสต์ระยะไกลหรือคอมพิวเตอร์เครื่องหนึ่งสามารถเป็นโฮสต์ในพื้นที่และอีกเครื่องหนึ่งคือโฮสต์ระยะไกล เมื่อไม่นานมานี้มีผู้ใช้จำนวนมากได้รับข้อผิดพลาด“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว ” ขณะพยายามคัดลอกไฟล์ด้วย SCP

ในบทความนี้เราจะพูดถึงสาเหตุบางประการที่ทำให้เกิดปัญหานี้ขึ้นและยังมีวิธีแก้ไขที่เป็นไปได้เพื่อแก้ไขให้สมบูรณ์ นอกจากนี้เราจะตรวจสอบสาเหตุบางประการที่เกิดขึ้น อย่าลืมปฏิบัติตามคำแนะนำอย่างระมัดระวังและถูกต้องเพื่อหลีกเลี่ยงความขัดแย้ง

อะไรทำให้เกิดข้อผิดพลาด“ ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว” ใน SCP?

หลังจากได้รับรายงานจำนวนมากจากผู้ใช้หลายคนเราจึงตัดสินใจที่จะตรวจสอบปัญหาและคิดหาวิธีแก้ไขปัญหาอย่างสมบูรณ์ นอกจากนี้เรายังตรวจสอบสาเหตุที่ทำให้เกิดและระบุไว้ดังต่อไปนี้

  • คำสั่งไม่ถูกต้อง: ในบางกรณีคำสั่งที่ผู้ใช้ใช้เพื่อคัดลอกไฟล์อาจไม่ถูกต้อง คุณต้องแก้ไขคำสั่ง copy เพื่อให้เหมาะกับสถานการณ์ปัจจุบันที่คุณกำลังคัดลอก คำสั่งสำหรับการคัดลอกไฟล์และไดเร็กทอรีทั้งหมดแตกต่างกัน นอกจากนี้คำสั่งในการคัดลอกระหว่างคอมพิวเตอร์สองเครื่องที่มีการกำหนดค่าต่างกันจะเปลี่ยนไปตามข้อกำหนด
  • หมายเลขพอร์ต: อาจเป็นไปได้ว่ายังไม่ได้ระบุหมายเลขพอร์ตสำหรับการคัดลอกไฟล์ระหว่างคอมพิวเตอร์ ต้องส่งต่อพอร์ตที่ถูกต้องก่อนพยายามคัดลอกไฟล์ระหว่างสองโฮสต์
  • การเข้าสู่ระบบไม่ถูกต้อง:หากคุณกำลังล็อกอินเข้าสู่เซิร์ฟเวอร์และพยายามคัดลอกไฟล์ไปยังเดสก์ท็อปคุณอาจพบข้อผิดพลาดนี้เนื่องจากเซิร์ฟเวอร์พยายามค้นหาเส้นทางภายในเครื่องภายในเซิร์ฟเวอร์ สิ่งนี้สามารถป้องกันได้โดยการล็อกเอาต์เซิร์ฟเวอร์พา ธ
  • สิทธิ์ของไฟล์: ในบางกรณีสิทธิ์ของไฟล์ที่จะคัดลอกอาจ จำกัด ไว้ที่ "อ่านอย่างเดียว" วิธีนี้สามารถป้องกันไม่ให้เซิร์ฟเวอร์เข้าถึงไฟล์และไม่สามารถคัดลอกได้ สิ่งสำคัญคือสิทธิ์ในการอ่านและเขียนมีให้สำหรับไฟล์

เมื่อคุณมีความเข้าใจพื้นฐานเกี่ยวกับลักษณะของปัญหาแล้วเราจะดำเนินการแก้ไขต่อไป อย่าลืมนำสิ่งเหล่านี้ไปใช้ตามลำดับเฉพาะที่นำเสนอเพื่อหลีกเลี่ยงความขัดแย้ง

โซลูชันที่ 1: การใช้คำสั่งที่ถูกต้อง

คุณต้องใช้คำสั่งที่ถูกต้องขึ้นอยู่กับการกำหนดค่าของโฮสต์ที่คุณต้องการถ่ายโอนไฟล์ สำหรับสิ่งนี้เราจะแสดงรายการคำสั่งบางส่วนที่สามารถใช้ในการถ่ายโอนไฟล์ระหว่างการกำหนดค่าโฮสต์ต่างๆ

ในการคัดลอกจาก Local Host ไปยัง Remote Host

Localhost คือคอมพิวเตอร์จริงที่คุณสามารถเข้าถึงได้ โฮสต์ระยะไกลเป็นโฮสต์ที่ผู้ใช้ไม่มีการเข้าถึงทางกายภาพใด ๆ และตั้งอยู่ในเซิร์ฟเวอร์ที่ห่างไกล ในการถ่ายโอนไฟล์จาก Localhost ไปยังโฮสต์ระยะไกลคุณต้องใช้การกำหนดค่าคำสั่งต่อไปนี้

$ scp "the_file" your_username @ the_remote_host: ไดเร็กทอรี / path / to / the /

ตัวอย่างการคัดลอกไฟล์ข้อความชื่อ“ 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

เพื่อคัดลอกจากโฮสต์ระยะไกลไปยังโฮสต์ท้องถิ่น

หากคุณต้องการคัดลอกไฟล์จากโฮสต์ระยะไกลไปยังโฮสต์ภายในการกำหนดค่าคำสั่งจะแตกต่างจากไฟล์ต้นฉบับ ด้านล่างนี้ระบุคำสั่งที่เหมาะสมในการคัดลอกไฟล์ระหว่างโฮสต์ระยะไกลและ Localhost

ในการคัดลอกไฟล์ให้ใช้คำสั่งต่อไปนี้

$ scp your_username @ the_remote_host: the_file / your / local / ไดเร็กทอรี

ในการคัดลอกไฟล์ชื่อ“ 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 / ไดเร็กทอรี

คำสั่งเดียวกันนี้สามารถใช้เพื่อระบุหมายเลขพอร์ตขณะคัดลอกไปยังหรือจากโฮสต์ระยะไกล คุณต้องเพิ่ม“ -P (หมายเลขพอร์ต) ” หลังส่วน“ $ scp ” ของคำสั่ง

โซลูชันที่ 3: การเปลี่ยนสิทธิ์

ต้องมีการให้สิทธิ์ที่เหมาะสมกับไฟล์ในขณะที่คัดลอกระหว่างคอมพิวเตอร์ ดังนั้นในขั้นตอนนี้เราจะระบุกระบวนการเปลี่ยนแปลงสิทธิ์ของไฟล์ สำหรับการที่:

  1. ขวา - คลิกที่ไฟล์ที่คุณกำลังพยายามที่จะคัดลอก
  2. คลิกที่“ Properties ” และเลือกแท็บ“ Security
  3. ตรวจสอบให้แน่ใจว่ามีการให้สิทธิ์ทั้งหมดแก่“ ระบบ ” และ“ ผู้ดูแลระบบ

หมายเหตุ: ตรวจสอบให้แน่ใจว่าคุณไม่ได้ล็อกอินเข้าสู่เส้นทางเซิร์ฟเวอร์ขณะคัดลอกไฟล์