คู่มือการเริ่มต้นของการซิงค์ข้อมูลด้วย Rsync
โพรโทคอล rsync นั้นค่อนข้างใช้งานง่ายสำหรับการสำรองข้อมูล / การซิงโครไนซ์ทั่วไป แต่คุณสมบัติขั้นสูงบางอย่างอาจทำให้คุณประหลาดใจ ในบทความนี้เราจะแสดงให้เห็นว่าแม้แต่ผู้เก็บข้อมูลที่ใหญ่ที่สุดและผู้ที่ชื่นชอบการสำรองข้อมูลสามารถใช้ rsync เป็นโซลูชั่นเดียวสำหรับความต้องการสำรองข้อมูลทั้งหมดของพวกเขา.
คำเตือน: Geeks ขั้นสูงเท่านั้น
หากคุณกำลังนั่งอยู่ที่นั่นคิดว่า "heck คือ rsync อะไร?" หรือ "ฉันใช้ rsync เพื่องานง่ายๆ" คุณอาจต้องการอ่านบทความก่อนหน้าของเราเกี่ยวกับวิธีใช้ rsync เพื่อสำรองข้อมูลของคุณบน Linux ซึ่งให้ คำแนะนำเกี่ยวกับ rsync แนะนำคุณตลอดการติดตั้งและแสดงฟังก์ชั่นพื้นฐานเพิ่มเติม เมื่อคุณมีความเข้าใจอย่างถ่องแท้เกี่ยวกับวิธีการใช้ rsync (จริงๆแล้วมันไม่ซับซ้อน) และคุ้นเคยกับเทอร์มินัล Linux คุณพร้อมที่จะไปยังคู่มือขั้นสูงนี้แล้ว.
ใช้ rsync บน Windows
ก่อนอื่นมาขอตัวอ่าน Windows ของเราในหน้าเดียวกับปรมาจารย์ Linux ของเรา แม้ว่า rsync นั้นถูกสร้างขึ้นเพื่อให้ทำงานบนระบบที่เหมือน Unix แต่ก็ไม่มีเหตุผลที่คุณไม่ควรใช้งาน Windows ได้อย่างง่ายดาย Cygwin ผลิต Linux API ที่ยอดเยี่ยมที่เราสามารถใช้เพื่อเรียกใช้ rsync ดังนั้นตรงไปที่เว็บไซต์ของพวกเขาและดาวน์โหลดรุ่น 32 บิตหรือ 64 บิตขึ้นอยู่กับคอมพิวเตอร์ของคุณ.
การติดตั้งตรงไปตรงมา คุณสามารถรักษาตัวเลือกทั้งหมดตามค่าเริ่มต้นจนกว่าคุณจะไปที่หน้าจอ“ เลือกแพ็คเกจ”.
ตอนนี้คุณต้องทำตามขั้นตอนเดียวกันสำหรับ Vim และ SSH แต่แพ็คเกจจะดูแตกต่างออกไปเล็กน้อยเมื่อคุณเลือกตัวเลือกดังนั้นนี่คือภาพหน้าจอบางส่วน:
การติดตั้ง Vim:
การติดตั้ง SSH:
หลังจากคุณเลือกแพ็คเกจทั้งสามแล้วให้คลิกถัดไปจนกว่าคุณจะเสร็จสิ้นการติดตั้ง จากนั้นคุณสามารถเปิด Cygwin ได้โดยคลิกที่ไอคอนที่ตัวติดตั้งวางไว้บนเดสก์ท็อปของคุณ.
คำสั่ง rsync: ง่ายถึงขั้นสูง
ตอนนี้ผู้ใช้ Windows อยู่ในหน้าเดียวกันลองมาดูคำสั่ง rsync อย่างง่ายและแสดงว่าการใช้สวิตช์ขั้นสูงบางตัวสามารถทำให้ซับซ้อนได้อย่างไร.
สมมติว่าคุณมีไฟล์จำนวนมากที่ต้องทำการแบ็คอัพ - ใครบ้างที่ไม่มีวันนี้ คุณเสียบฮาร์ดไดรฟ์พกพาของคุณเพื่อให้คุณสามารถสำรองไฟล์คอมพิวเตอร์ของคุณและออกคำสั่งต่อไปนี้:
rsync -a / home / geek / files / / mnt / usb / ไฟล์ /
หรือวิธีที่จะดูบนคอมพิวเตอร์ Windows ด้วย Cygwin:
rsync -a / cygdrive / c / ไฟล์ / / cygdrive / e / ไฟล์ /
ค่อนข้างง่ายและ ณ จุดนั้นไม่จำเป็นต้องใช้ rsync เพราะคุณสามารถลากและวางไฟล์ได้ อย่างไรก็ตามหากฮาร์ดไดรฟ์อื่นของคุณมีไฟล์อยู่แล้วและต้องการเพียงเวอร์ชันที่อัปเดตรวมถึงไฟล์ที่สร้างขึ้นตั้งแต่การซิงค์ครั้งล่าสุดคำสั่งนี้มีประโยชน์เพราะมันจะส่งข้อมูลใหม่ไปยังฮาร์ดไดรฟ์เท่านั้น ด้วยไฟล์ขนาดใหญ่และโดยเฉพาะการถ่ายโอนไฟล์ผ่านอินเทอร์เน็ตนั่นเป็นเรื่องใหญ่.
การสำรองไฟล์ของคุณไปยังฮาร์ดไดรฟ์ภายนอกแล้วเก็บฮาร์ดไดรฟ์ไว้ในตำแหน่งเดียวกับคอมพิวเตอร์ของคุณเป็นความคิดที่แย่มากดังนั้นเรามาดูสิ่งที่มันต้องมีเพื่อเริ่มส่งไฟล์ของคุณผ่านอินเทอร์เน็ตไปยังคอมพิวเตอร์เครื่องอื่น สิ่งที่คุณเช่า, สมาชิกในครอบครัว ฯลฯ ).
rsync -av --delete -e 'ssh -p 12345' / home / geek / files / [email protected]: / home / geek2 / files /
คำสั่งดังกล่าวจะส่งไฟล์ของคุณไปยังคอมพิวเตอร์เครื่องอื่นที่มีที่อยู่ IP 10.1.1.1 มันจะลบไฟล์ที่ไม่เกี่ยวข้องจากปลายทางที่ไม่มีอยู่ในไดเรกทอรีต้นทางส่งออกชื่อไฟล์ที่ถูกถ่ายโอนเพื่อให้คุณมีความคิดว่าเกิดอะไรขึ้นและ tunnel rsync ผ่าน SSH บนพอร์ต 12345.
-a -v -e - ลบ
สวิตช์เป็นสวิตช์พื้นฐานที่ใช้กันมากที่สุด คุณควรจะรู้ข้อตกลงเหล่านี้เป็นอย่างดีหากคุณอ่านบทช่วยสอนนี้ เรามาดูสวิตช์อื่น ๆ ที่บางครั้งถูกละเลย แต่ก็มีประโยชน์อย่างเหลือเชื่อ:
--ความคืบหน้า
- สวิตช์นี้ช่วยให้เราเห็นความคืบหน้าการถ่ายโอนของแต่ละไฟล์ มันมีประโยชน์อย่างยิ่งเมื่อทำการถ่ายโอนไฟล์ขนาดใหญ่ผ่านอินเทอร์เน็ต แต่สามารถส่งออกข้อมูลจำนวนมากเมื่อทำการถ่ายโอนไฟล์ขนาดเล็กผ่านเครือข่ายที่รวดเร็ว.
คำสั่ง rsync พร้อมกับ --ความคืบหน้า
เปลี่ยนเป็นการสำรองข้อมูล:
--เป็นบางส่วน
- นี่เป็นอีกหนึ่งสวิตช์ที่มีประโยชน์อย่างยิ่งเมื่อทำการถ่ายโอนไฟล์ขนาดใหญ่ผ่านทางอินเทอร์เน็ต หาก rsync ถูกขัดจังหวะไม่ว่าด้วยเหตุผลใด ๆ ในระหว่างการถ่ายโอนไฟล์ไฟล์ที่ถูกถ่ายโอนบางส่วนจะถูกเก็บไว้ในไดเรกทอรีปลายทางและการถ่ายโอนจะกลับมาทำงานต่อเมื่อถูกทิ้งเมื่อคำสั่ง rsync ถูกดำเนินการอีกครั้ง เมื่อทำการถ่ายโอนไฟล์ขนาดใหญ่ผ่านทางอินเทอร์เน็ต (กล่าวคือกี่กิกะไบต์) ไม่มีอะไรเลวร้ายยิ่งไปกว่าการที่อินเทอร์เน็ตดับสองสามวินาทีหน้าจอสีน้ำเงินหรือข้อผิดพลาดของมนุษย์ทำให้การถ่ายโอนไฟล์ของคุณหมดและต้องเริ่มต้นใหม่อีกครั้ง.
-P
- สวิตช์นี้รวม --ความคืบหน้า
และ --เป็นบางส่วน
, ดังนั้นใช้มันแทนและมันจะทำให้คำสั่ง rsync ของคุณเล็ก ๆ น้อย ๆ.
-Z
หรือ --อัด
- สวิตช์นี้จะทำให้ rsync บีบอัดข้อมูลไฟล์ในขณะที่กำลังถ่ายโอนลดจำนวนข้อมูลที่ต้องส่งไปยังปลายทาง จริงๆแล้วมันเป็นสวิตช์ที่ใช้กันทั่วไป แต่อยู่ไกลจากความจำเป็นเพียงให้ประโยชน์กับคุณในการถ่ายโอนระหว่างการเชื่อมต่อที่ช้าและไม่ได้ทำอะไรเลยสำหรับไฟล์ประเภทต่อไปนี้: 7z, avi, bz2, deb, g, z iso, jpeg, jpg, mov, mp3, mp4, ogg, rpm, tbz, tgz, z, zip.
-ชั่วโมง
หรือ --มนุษย์สามารถอ่านได้
- หากคุณกำลังใช้ --ความคืบหน้า
คุณจะต้องใช้อันนี้แน่นอน นั่นคือยกเว้นว่าคุณต้องการแปลงไบต์เป็นเมกะไบต์ได้ทันที -ชั่วโมง
สวิทช์แปลงตัวเลขที่ส่งออกทั้งหมดเป็นรูปแบบที่มนุษย์อ่านได้ดังนั้นคุณจึงสามารถเข้าใจถึงปริมาณของข้อมูลที่ถูกถ่ายโอน.
-n
หรือ --แห้งวิ่ง
- สวิตช์นี้จำเป็นต้องรู้เมื่อคุณเขียนสคริปต์ rsync ของคุณเป็นครั้งแรกและทำการทดสอบ มันทำการทดลองใช้งาน แต่ไม่ได้ทำการเปลี่ยนแปลงใด ๆ จริง - การเปลี่ยนแปลงที่ต้องการจะยังคงแสดงผลตามปกติดังนั้นคุณสามารถอ่านได้ทุกอย่างและตรวจสอบให้แน่ใจว่ามันดูโอเคก่อนที่สคริปต์ของคุณจะเริ่มทำงาน.
-R
หรือ --ญาติ
- ต้องใช้สวิตช์นี้หากไม่มีไดเรกทอรีปลายทางอยู่ เราจะใช้ตัวเลือกนี้ในภายหลังในคู่มือนี้เพื่อให้เราสามารถสร้างไดเรกทอรีบนเครื่องเป้าหมายด้วยการประทับเวลาในชื่อโฟลเดอร์.
--ยกเว้นจาก
- สวิตช์นี้ใช้เพื่อเชื่อมโยงไปยังรายการแยกที่มีเส้นทางไดเรกทอรีที่คุณไม่ต้องการสำรองข้อมูล มันแค่ต้องการไฟล์ข้อความธรรมดาที่มีไดเรกทอรีหรือเส้นทางของไฟล์ในแต่ละบรรทัด.
--รวมถึงจาก
- คล้ายกับ --ยกเว้นจาก
, แต่ลิงก์ไปยังไฟล์ที่มีไดเรกทอรีและพา ธ ไฟล์ของข้อมูลที่คุณต้องการสำรองข้อมูล.
--สถิติ
- ไม่ใช่สวิตช์ที่สำคัญไม่ว่าจะด้วยวิธีใดก็ตาม แต่ถ้าคุณเป็นผู้ดูแลระบบคุณสามารถทราบสถิติรายละเอียดของการสำรองข้อมูลแต่ละครั้งได้อย่างสะดวกดังนั้นคุณจึงสามารถตรวจสอบปริมาณการรับส่งข้อมูลที่ส่งผ่านเครือข่ายของคุณ.
--เข้าสู่ระบบไฟล์
- ซึ่งช่วยให้คุณส่งเอาต์พุต rsync ไปยังไฟล์บันทึก เราขอแนะนำอย่างนี้สำหรับการสำรองข้อมูลอัตโนมัติที่คุณไม่ได้อยู่ที่นั่นเพื่ออ่านผลลัพธ์ด้วยตัวคุณเอง ให้ไฟล์บันทึกอีกครั้งในเวลาว่างเพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง นอกจากนี้ยังเป็นสวิตช์ที่สำคัญสำหรับดูแลระบบที่จะใช้ดังนั้นคุณจะไม่ถูกทิ้งให้สงสัยว่าการสำรองข้อมูลของคุณล้มเหลวในขณะที่คุณออกจากการฝึกงาน.
ลองมาดูคำสั่ง rsync ของเราตอนนี้ว่าเรามีสวิตช์เพิ่มอีกสองสาม:
rsync -avzhP - ลบ - เริ่ม - บันทึกไฟล์ = / home / geek / rsynclogs / backup.log --exclude- จาก '/home/geek/exclude.txt' -e 'ssh -p 12345' / home / geek / files / [email protected]: / home / geek2 / files /
คำสั่งนั้นยังค่อนข้างง่าย แต่เรายังไม่ได้สร้างโซลูชันสำรองที่เหมาะสม แม้ว่าขณะนี้ไฟล์ของเราจะอยู่ในที่ตั้งทางกายภาพที่แตกต่างกันสองแห่ง แต่การสำรองข้อมูลนี้ก็ไม่ได้ช่วยอะไรเราจากสาเหตุหลักของการสูญหายของข้อมูล: ข้อผิดพลาดของมนุษย์.
สำรองข้อมูล Snapshot
หากคุณลบไฟล์โดยไม่ตั้งใจไวรัสจะทำลายไฟล์ใด ๆ ของคุณหรือมีสิ่งอื่นใดเกิดขึ้นโดยที่ไฟล์ของคุณมีการเปลี่ยนแปลงอย่างที่ไม่ต้องการและจากนั้นคุณเรียกใช้สคริปต์สำรองของ rsync ข้อมูลสำรองของคุณจะถูกเขียนทับด้วยการเปลี่ยนแปลงที่ไม่พึงประสงค์ เมื่อสิ่งนั้นเกิดขึ้น (ไม่ใช่ถ้า แต่เมื่อ) โซลูชันสำรองข้อมูลของคุณไม่ได้ทำอะไรเลยเพื่อปกป้องคุณจากการสูญหายของข้อมูล.
ผู้สร้าง rsync ตระหนักถึงสิ่งนี้และเพิ่ม --การสำรองข้อมูล
และ --สำรอง-dir
ข้อโต้แย้งเพื่อให้ผู้ใช้สามารถเรียกใช้การสำรองข้อมูลที่แตกต่างกัน ตัวอย่างแรกในเว็บไซต์ของ rsync จะแสดงสคริปต์ที่มีการสำรองข้อมูลเต็มรูปแบบทำงานทุกเจ็ดวันจากนั้นการเปลี่ยนแปลงไฟล์เหล่านั้นจะถูกสำรองไว้ในไดเรกทอรีแยกต่างหากทุกวัน ปัญหาด้วยวิธีนี้คือการกู้คืนไฟล์ของคุณคุณต้องกู้คืนไฟล์เหล่านั้นเจ็ดครั้งอย่างมีประสิทธิภาพ ยิ่งกว่านั้น geeks ส่วนใหญ่ใช้การสำรองข้อมูลหลายครั้งต่อวันดังนั้นคุณสามารถมีไดเรคทอรีการสำรองข้อมูลที่แตกต่างกันมากกว่า 20 รายการในเวลาใดก็ตาม ไม่เพียง แต่การกู้คืนไฟล์ของคุณจะเจ็บปวด แต่การดูข้อมูลที่สำรองไว้อาจใช้เวลานานมาก - คุณต้องรู้ว่าครั้งสุดท้ายที่ไฟล์ถูกเปลี่ยนเพื่อค้นหาสำเนาสำรองล่าสุด ยิ่งไปกว่านั้นมันไม่มีประสิทธิภาพในการรันการสำรองข้อมูลเพิ่มเติมแบบรายสัปดาห์ (หรือแม้แต่น้อยกว่าในบางกรณี).
สำรองข้อมูล Snapshot เพื่อช่วยเหลือ! การสำรองข้อมูลสแนปชอตนั้นไม่มีอะไรมากไปกว่าการสำรองข้อมูลที่เพิ่มขึ้น แต่จะใช้การเชื่อมโยงแบบแข็งเพื่อรักษาโครงสร้างไฟล์ของแหล่งต้นฉบับ นั่นอาจเป็นเรื่องยากที่จะคาดศีรษะในตอนแรกดังนั้นลองมาดูตัวอย่าง.
แกล้งทำเป็นว่าเรามีสคริปต์สำรองที่ทำงานซึ่งสำรองข้อมูลของเราโดยอัตโนมัติทุก ๆ สองชั่วโมง เมื่อใดก็ตามที่ rsync ทำเช่นนี้จะตั้งชื่อการสำรองข้อมูลแต่ละรายการในรูปแบบของ: Backup-month-day-year-time.
ดังนั้นในตอนท้ายของวันธรรมดาเราจะมีรายการโฟลเดอร์ในไดเรกทอรีปลายทางของเราดังนี้:
เมื่อเข้าไปในไดเรกทอรีใด ๆ เหล่านั้นคุณจะเห็นทุกไฟล์จากไดเรกทอรีต้นทางเหมือนกับในเวลานั้น แต่จะไม่มีการทำซ้ำข้ามไดเรกทอรีสองไดเรกทอรี rsync ทำได้สำเร็จด้วยการใช้การเชื่อมโยงผ่าน --การเชื่อมโยงปลายทาง = DIR
ข้อโต้แย้ง.
แน่นอนเพื่อให้มีชื่อไดเรกทอรีที่สวยงามและเรียบร้อยเราจะต้องเพิ่มสคริปต์ rsync ของเราสักหน่อย ลองมาดูกันว่ามันจะต้องใช้อะไรเพื่อให้ได้โซลูชันสำรองข้อมูลเช่นนี้จากนั้นเราจะอธิบายรายละเอียดของสคริปต์ให้มากขึ้น:
#! / bin / ทุบตี
#copy old time.txt ถึง time2.txt
ใช่ | cp ~ / backup / time.txt ~ / backup / time2.txt
#overwrite ไฟล์ time.txt เก่าพร้อมเวลาใหม่
echo 'date +”% F-% I% p”'> ~ / backup / time.txt
#make ไฟล์บันทึก
echo“”> ~ / backup / rsync-'วันที่ +”% F-% I% p”” บันทึก
คำสั่ง #rsync
rsync -avzhPR --chmod = Du = rwx, Dgo = rx, Fu = rw, Fgo = r - ลบ - เริ่ม - - ล็อก - ไฟล์ = ~ / สำรอง / rsync -'date +”% F-% I% p” '. log --exclude-from' ~ /lude.txt '--link-dest = / home / geek2 / files /' cat ~ / backup / time2.txt '-e' ssh -p 12345 '/ home / geek / files / [email protected]: / home / geek2 / files / 'date +”% F-% I% p”' /
# อย่าลืมสแกนไฟล์บันทึกแล้วนำไปสำรองข้อมูล
scp -P 12345 ~ / backup / rsync-'cat ~ / backup / time.txt'.log [email protected]: / home / geek2 / files / 'cat ~ / backup / time.txt' / rsync-'cat ~ / สำรอง / time.txt'.log
นั่นจะเป็นสคริปต์ rsync สแนปชอตทั่วไป ในกรณีที่เราสูญเสียคุณไปที่ไหนสักแห่งลองผ่ามันทีละชิ้น:
บรรทัดแรกของสคริปต์ของเราคัดลอกเนื้อหาของ time.txt ไปยัง time2.txt ใช่ไปป์คือการยืนยันว่าเราต้องการที่จะเขียนทับไฟล์ ต่อไปเราจะใช้เวลาปัจจุบันและใส่ลงใน time.txt ไฟล์เหล่านี้จะมีประโยชน์ในภายหลัง.
บรรทัดถัดไปทำให้ไฟล์บันทึก rsync ตั้งชื่อเป็น rsync-date.log (วันที่เป็นวันที่และเวลาจริง).
ตอนนี้คำสั่ง rsync ที่ซับซ้อนที่เราได้รับคำเตือนคุณเกี่ยวกับ:
-avzhPR, -e, - ลบ, - เริ่ม, - บันทึกไฟล์, - ยกเว้น -, - ลิงก์-dest
- แค่สวิตช์ที่เราพูดถึงก่อนหน้านี้ เลื่อนขึ้นหากคุณต้องการทบทวน.
--chmod = = Du rwx, DGO = RX, Fu = RW, Fgo r =
- นี่คือการอนุญาตสำหรับไดเรกทอรีปลายทาง เนื่องจากเราสร้างไดเรกทอรีนี้ตรงกลางสคริปต์ rsync ของเราเราต้องระบุการอนุญาตเพื่อให้ผู้ใช้ของเราสามารถเขียนไฟล์ลงไปได้.
การใช้คำสั่ง date และ cat
เราจะไปดูการใช้คำสั่ง date และ cat แต่ละครั้งภายในคำสั่ง rsync ตามลำดับที่เกิดขึ้น หมายเหตุ: เราทราบว่ามีวิธีอื่น ๆ ที่จะทำให้การทำงานนี้สำเร็จโดยเฉพาะอย่างยิ่งเมื่อใช้การประกาศตัวแปร แต่สำหรับวัตถุประสงค์ของคู่มือนี้เราได้ตัดสินใจที่จะใช้วิธีนี้.
ไฟล์บันทึกถูกระบุเป็น:
~ / backup / rsync-'date +”% F-% I% p” 'บันทึก
หรือเราอาจระบุเป็น:
~ / backup / rsync-'cat ~ / backup / time.txt'.log
ไม่ว่าจะด้วยวิธีใด --เข้าสู่ระบบไฟล์
คำสั่งควรจะสามารถค้นหาไฟล์บันทึกลงวันที่ที่สร้างไว้ก่อนหน้าและเขียนลงไปได้.
ไฟล์ปลายทางลิงก์ถูกระบุเป็น:
--link-dest = / home / geek2 / files / 'cat ~ / backup / time2.txt'
ซึ่งหมายความว่า --การเชื่อมโยงปลายทาง
คำสั่งจะได้รับไดเรกทอรีของการสำรองข้อมูลก่อนหน้า หากเราใช้การสำรองข้อมูลทุกสองชั่วโมงและเป็นเวลา 16.00 น. ณ เวลาที่เราเรียกใช้สคริปต์นี้ --การเชื่อมโยงปลายทาง
คำสั่งค้นหาไดเรกทอรีที่สร้างขึ้นที่ 2:00 PM และถ่ายโอนข้อมูลที่มีการเปลี่ยนแปลงตั้งแต่นั้นมา (ถ้ามี).
เพื่อย้ำนั่นคือเหตุผลที่ time.txt ถูกคัดลอกไปยัง time2.txt ที่จุดเริ่มต้นของสคริปต์ดังนั้น --การเชื่อมโยงปลายทาง
คำสั่งสามารถอ้างอิงเวลานั้นในภายหลัง.
ไดเรกทอรีปลายทางถูกระบุเป็น:
[email protected]: / home / geek2 / files / 'date +”% F-% I% p”
คำสั่งนี้จะวางไฟล์ต้นฉบับลงในไดเรกทอรีที่มีชื่อเรื่องของวันที่และเวลาปัจจุบัน.
ในที่สุดเราตรวจสอบให้แน่ใจว่ามีการวางสำเนาของไฟล์บันทึกไว้ในข้อมูลสำรอง.
scp -P 12345 ~ / backup / rsync-'cat ~ / backup / time.txt'.log [email protected]: / home / geek2 / files / 'cat ~ / backup / time.txt' / rsync-'cat ~ / สำรอง / time.txt'.log
เราใช้สำเนาที่ปลอดภัยในพอร์ต 12345 เพื่อใช้บันทึก rsync และวางไว้ในไดเรกทอรีที่เหมาะสม หากต้องการเลือกไฟล์บันทึกที่ถูกต้องและตรวจสอบให้แน่ใจว่าไฟล์นั้นจบลงในจุดที่ถูกต้องไฟล์ time.txt จะต้องอ้างอิงผ่านคำสั่ง cat หากคุณสงสัยว่าทำไมเราตัดสินใจ cat time.txt แทนการใช้คำสั่ง date เพราะหลายครั้งอาจเกิดขึ้นในขณะที่คำสั่ง rsync กำลังทำงานดังนั้นเพื่อให้แน่ใจว่าเรามีเวลาที่เหมาะสม เอกสารข้อความที่เราสร้างไว้ก่อนหน้านี้.
การทำงานอัตโนมัติ
ใช้ Cron บน Linux หรือ Task Scheduler บน Windows เพื่อทำให้สคริปต์ rsync ของคุณเป็นแบบอัตโนมัติ สิ่งหนึ่งที่คุณต้องระวังคือการทำให้แน่ใจว่าคุณสิ้นสุดกระบวนการ rsync ที่กำลังทำงานอยู่ก่อนที่จะดำเนินการกระบวนการใหม่ Task Scheduler ดูเหมือนว่าจะปิดอินสแตนซ์ที่กำลังทำงานอยู่โดยอัตโนมัติ แต่สำหรับ Linux คุณจะต้องมีความคิดสร้างสรรค์มากขึ้น.
การกระจาย Linux ส่วนใหญ่สามารถใช้คำสั่ง pkill ดังนั้นให้แน่ใจว่าได้เพิ่มสิ่งต่อไปนี้ที่จุดเริ่มต้นของสคริปต์ rsync ของคุณ:
pkill -9 rsync
การเข้ารหัสลับ
ไม่เรายังไม่ได้ทำ ในที่สุดเราก็มีโซลูชันสำรองข้อมูลที่ยอดเยี่ยม (และฟรี!) แต่ไฟล์ของเราทั้งหมดยังคงมีความเสี่ยงต่อการถูกขโมย หวังว่าคุณกำลังสำรองไฟล์ของคุณไปยังที่ไกลหลายร้อยไมล์ ไม่ว่าสถานที่ห่างไกลจะปลอดภัยแค่ไหนการขโมยและการแฮ็คอาจเป็นปัญหาได้เสมอ.
ในตัวอย่างของเราเราเจาะข้อมูลปริมาณการใช้ rsync ทั้งหมดของเราผ่าน SSH ดังนั้นนั่นหมายความว่าไฟล์ทั้งหมดของเราจะถูกเข้ารหัสขณะที่กำลังส่งไปยังปลายทาง อย่างไรก็ตามเราต้องแน่ใจว่าปลายทางนั้นปลอดภัย โปรดทราบว่า rsync จะเข้ารหัสข้อมูลของคุณในขณะที่กำลังถ่ายโอน แต่ไฟล์จะเปิดกว้างเมื่อมาถึงปลายทาง.
หนึ่งในคุณสมบัติที่ดีที่สุดของ rsync ก็คือมันจะถ่ายโอนการเปลี่ยนแปลงในแต่ละไฟล์เท่านั้น หากคุณเข้ารหัสไฟล์ทั้งหมดและทำการเปลี่ยนแปลงเพียงครั้งเดียวไฟล์ทั้งหมดจะต้องถูกส่งซ้ำเนื่องจากการเข้ารหัสโดยสุ่มข้อมูลทั้งหมดหลังจากการเปลี่ยนแปลงใด ๆ.
ด้วยเหตุนี้จึงเป็นการดีที่สุด / ง่ายที่สุดในการใช้การเข้ารหัสดิสก์บางประเภทเช่น BitLocker สำหรับ Windows หรือ dm-crypt สำหรับ Linux ด้วยวิธีนี้ข้อมูลของคุณจะได้รับการปกป้องในกรณีที่ถูกโจรกรรม แต่สามารถถ่ายโอนไฟล์ด้วย rsync และการเข้ารหัสของคุณจะไม่ขัดขวางประสิทธิภาพของมัน มีตัวเลือกอื่น ๆ ที่ทำงานคล้ายกับ rsync หรือใช้รูปแบบบางอย่างเช่น Duplicity แต่ไม่มีคุณสมบัติบางอย่างที่ rsync มีให้.
หลังจากที่คุณตั้งค่าสำเนาสำรองสแน็ปช็อตในสถานที่นอกสถานที่และเข้ารหัสฮาร์ดไดรฟ์ต้นทางและปลายทางของคุณแล้วให้คุณเตรียมพร้อมสำหรับการเรียนรู้ rsync และใช้โซลูชันการสำรองข้อมูลที่เข้าใจผิดได้มากที่สุด.