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