Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

วิธีแก้ไขข้อผิดพลาด 'No such File or Directory' ใน SCP

SCP ย่อมาจาก Secure Copy Protocol และพัฒนาบนโปรโตคอล "Secure Shell" ให้วิธีถ่ายโอนไฟล์ระหว่างคอมพิวเตอร์ ในการถ่ายโอนนี้ อาจเป็นทั้งคู่คือ remote hosts หรือเครื่องหนึ่งเป็น localhost อีกเครื่องเป็น remote host ไม่กี่วันมา ผู้ใช้หลายคนเจอข้อผิดพลาด "No Such File or Directory" ขณะพยายามคัดลอกไฟล์ด้วย SCP

วิธีแก้ไขข้อผิดพลาด  No such File or Directory  ใน SCP

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

สาเหตุของข้อผิดพลาด "No Such File or Directory" ใน SCP

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

  • คำสั่งไม่ถูกต้อง: ในบางกรณี คำสั่งที่ผู้ใช้ใช้คัดลอกไฟล์อาจไม่ถูกต้อง ต้องปรับคำสั่งคัดลอกให้เหมาะกับสถานการณ์ปัจจุบันที่คุณกำลังคัดลอก คำสั่งสำหรับคัดลอกไฟล์และโฟลเดอร์ทั้งหมดต่างกัน คำสั่งคัดลอกระหว่างคอมพิวเตอร์ 2 เครื่องที่มีการตั้งค่าต่างกัน จะเปลี่ยนตามความต้องการ
  • หมายเลขพอร์ต: เป็นไปได้ว่า หมายเลขพอร์ตสำหรับคัดลอกไฟล์ระหว่างคอมพิวเตอร์ยังไม่ได้ระบุ พอร์ตที่ถูกต้องต้องถูก forward ก่อนลองคัดลอกไฟล์ระหว่าง 2 hosts
  • การเข้าสู่ระบบไม่ถูกต้อง: หากคุณล็อกอินอยู่ในเซิร์ฟเวอร์และพยายามคัดลอกไฟล์ไปเดสก์ท็อป อาจเจอข้อผิดพลาดนี้ เพราะเซิร์ฟเวอร์พยายามหา local path ภายในเซิร์ฟเวอร์ สามารถป้องกันได้โดย logout ออกจาก server path
  • สิทธิ์ไฟล์: ในบางกรณี สิทธิ์ของไฟล์ที่จะคัดลอกอาจจำกัดเป็น "Read-Only" นี่อาจป้องกันไม่ให้เซิร์ฟเวอร์เข้าถึงไฟล์และคัดลอกได้ สิทธิ์ Read และ Write ต้องให้กับไฟล์

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

วิธีแก้ไขที่ 1: ใช้คำสั่งที่ถูกต้อง

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

คัดลอกจาก Local Host ไป Remote Host

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

$ scp "the_file" your_username@the_remote_host:the/path/to/the/directory

ตัวอย่างการคัดลอกไฟล์ข้อความชื่อ "Alexa.txt" จะเป็นดังนี้

$ scp Alexa.txt your_username@remotehost.edu:/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 your_username@remotehost.edu:/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: ระบุหมายเลขพอร์ต

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

คุณสามารถใช้คำสั่งต่อไปนี้เพื่อคัดลอกระหว่างคอมพิวเตอร์โดยระบุ พอร์ต หมายเลข

$ scp -P port_number your_username@the_remote_host:the_file /your/local/directory

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

วิธีแก้ไขที่ 3: เปลี่ยนสิทธิ์

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

  1. Right–click บนไฟล์ที่พยายามคัดลอก
  2. คลิก "Properties" และเลือกแท็บ "Security"
วิธีแก้ไขข้อผิดพลาด  No such File or Directory  ใน SCP
  1. ตรวจสอบให้แน่ใจว่าสิทธิ์ทั้งหมดให้กับ "System" และ "Administrator"
วิธีแก้ไขข้อผิดพลาด  No such File or Directory  ใน SCP

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