Score:0

ฉันกำลังพยายามสร้างเชลล์สคริปต์อย่างง่ายเพื่อสำรองไฟล์ในเครื่องเดียวกัน แต่ฉันพบข้อผิดพลาดซ้ำๆ ฉันไม่รู้วิธีแก้ไข

ธง us

ตกลง ดังนั้นฉันจึงใช้เซิร์ฟเวอร์ Ubuntu 18.04 สำหรับธุรกิจขนาดเล็กของฉัน และฉันมีความรู้เพียงเล็กน้อยนอกเหนือไปจากความปลอดภัยขั้นพื้นฐานและเรียกใช้สิ่งที่จำเป็นต้องเรียกใช้ ดังนั้นขออภัยหากนี่เป็นปัญหาที่งี่เง่าจริงๆ

ฉันต้องการตั้งค่าสคริปต์สำรองอย่างง่ายที่สำรองไฟล์และจัดเก็บไว้ในไดเร็กทอรีอื่นในเครื่องเดียวกัน

ในการทำเช่นนี้ ฉันทำตามตัวอย่างนี้โดย Ubuntu: https://ubuntu.com/server/docs/backups-shell-scripts

ฉันสร้างไดเร็กทอรีที่เกี่ยวข้องและอัปเดตสคริปต์เป็น:

#!/bin/bash
####################################
#
# สำรองไปยังสคริปต์เมานต์ NFS
#
####################################

#สิ่งที่ต้องสำรอง. 
backup_files="/home/server/testserver/logs"

#สำรองข้อมูลไว้ที่ไหน
dest="/home/server/backups"

# สร้างชื่อไฟล์เก็บถาวร
วัน=$(วันที่ +%A)
ชื่อโฮสต์ = $ (ชื่อโฮสต์ -s)
archive_file="$hostname-$day.tgz"

# พิมพ์ข้อความสถานะเริ่มต้น
echo "กำลังสำรอง $backup_files ไปยัง $dest/$archive_file"
วันที่
เสียงสะท้อน

# สำรองไฟล์โดยใช้ tar
tar czf $dest/$archive_file $backup_files

# พิมพ์ข้อความสถานะสิ้นสุด
เสียงสะท้อน
echo "สำรองข้อมูลเสร็จแล้ว"
วันที่

# รายการไฟล์ยาวใน $dest เพื่อตรวจสอบขนาดไฟล์
ls -lh $ปลายทาง

ฉันบันทึก bash ไว้ใน "/home/server/backups" แล้วลองเรียกใช้ในบันทึกการทดสอบ อย่างไรก็ตาม ฉันได้รับข้อผิดพลาดนี้:

-bash: ./backup.sh: /bin/bash^M: ตัวแปลที่ไม่ดี: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

ฉันค้นคว้าข้อมูลนี้ทางออนไลน์และลองเรียกใช้ไฟล์เป็น "bash backup.sh" และลบบรรทัด "#!/bin/bash" ออกพร้อมกัน ทั้งสองผลลัพธ์คือ:

backup.sh: บรรทัดที่ 7: $'\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 10: $'\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 13: $'\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 18: $'\r': ไม่พบคำสั่ง
.tgzday2427erver/backupstestserver/logs
backup.sh: บรรทัดที่ 21: $'date\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 22: $'echo\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 23: $'\r': ไม่พบคำสั่ง
tar: ลบ `/' นำหน้าออกจากชื่อสมาชิก
tar: /home/server/testserver/logs\r\r: ไม่สามารถ stat: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
tar (ชายด์): /home/server/backups\r/ns31202427\r-Friday\r.tgz\r: ไม่สามารถเปิดได้: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
tar (ลูก): ข้อผิดพลาดไม่สามารถกู้คืนได้: ออกทันที
tar: เด็กส่งคืนสถานะ 2
tar: ข้อผิดพลาดไม่สามารถกู้คืนได้: ออกทันที
backup.sh: บรรทัดที่ 26: $'\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 28: $'echo\r': ไม่พบคำสั่ง
สำรองข้อมูลเสร็จแล้ว
backup.sh: บรรทัดที่ 30: $'date\r': ไม่พบคำสั่ง
backup.sh: บรรทัดที่ 31: $'\r': ไม่พบคำสั่ง
ls: ไม่สามารถเข้าถึง '/home/server/backups'$'\r': ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

ทุกคนสามารถอธิบายสิ่งที่เกิดขึ้นที่นี่และช่วยฉันแก้ไขปัญหาเพื่อให้ฉันสามารถสำรองข้อมูลเซิร์ฟเวอร์ได้อย่างปลอดภัยหรือไม่ :)

โพสต์คำตอบ

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