Rclone: เครื่องมือซิงก์และจัดการไฟล์บนคลาวด์สตอเรจ
(rclone.org)- Rclone เป็นเครื่องมือสำหรับจัดการไฟล์บนคลาวด์ผ่านบรรทัดคำสั่ง โดยไม่ต้องพึ่งพาเว็บอินเทอร์เฟซ และรองรับผลิตภัณฑ์สตอเรจและโปรโตคอลการรับส่งข้อมูลมาตรฐาน มากกว่า 70 รายการ
- รองรับงานสไตล์ Unix ที่คุ้นเคยสำหรับคลาวด์ เช่น
rsync,cp,mv,mountพร้อมรองรับเชลล์ไปป์ไลน์,--dry-run, สคริปต์ และการทำงานอัตโนมัติผ่าน API - ระหว่างการถ่ายโอนจะคง timestamp และ checksum ไว้ และสามารถเริ่มทำงานต่อจากจุดที่ถ่ายโอนสำเร็จล่าสุดได้ แม้อยู่ในสภาพแวดล้อมที่มีการจำกัดแบนด์วิดท์ การเชื่อมต่อไม่เสถียร หรือมีโควตา
- สามารถ เมานต์ ระบบไฟล์แบบโลคัล คลาวด์ และเสมือน ให้ใช้งานเสมือนดิสก์บน Windows, macOS, Linux, FreeBSD และเปิดให้บริการผ่าน SFTP, HTTP, WebDAV, FTP, DLNA ได้
- รองรับทั้งการสำรองข้อมูล กู้คืน ย้ายข้อมูลข้ามคลาวด์ รวมถึงการเข้ารหัส บีบอัด แบ่งชิ้น แฮช และรวมสตอเรจไว้ในเครื่องมือเดียว จึงเหมาะเมื่อใช้งานหลายบริการสตอเรจร่วมกัน
เครื่องมือบรรทัดคำสั่งสำหรับจัดการไฟล์บนคลาวด์
- Rclone เป็น โปรแกรมบรรทัดคำสั่ง สำหรับจัดการไฟล์ในคลาวด์สตอเรจ
- มักถูกใช้เป็นเครื่องมือความสามารถสูงที่สามารถใช้แทนเว็บอินเทอร์เฟซสตอเรจที่ผู้ให้บริการคลาวด์มีให้
- รองรับมากกว่า 70 รายการ ครอบคลุมทั้ง S3 object store, บริการจัดเก็บไฟล์สำหรับองค์กรและผู้บริโภค และโปรโตคอลการรับส่งข้อมูลมาตรฐาน
- ผู้ใช้เรียก Rclone ว่าเป็น “มีดพกสวิสแห่งคลาวด์สตอเรจ” และ “เทคโนโลยีที่แทบแยกไม่ออกจากเวทมนตร์”
คำสั่งสไตล์ Unix และระบบอัตโนมัติ
- Rclone มีงานบนคลาวด์ที่สอดคล้องกับคำสั่ง Unix ที่คุ้นเคย
rsynccpmvmountlsncdutreermcat
- ไวยากรณ์รองรับเชลล์ไปป์ไลน์ และสามารถใช้
--dry-runเพื่อตรวจสอบงานก่อนมีการเปลี่ยนแปลงจริง - ใช้งานได้ทั้งจากบรรทัดคำสั่ง สคริปต์ และ API
- นักพัฒนาภายนอกนำบรรทัดคำสั่งหรือ API ของ Rclone ไปใช้สร้างโซลูชันด้านการสำรองข้อมูล การกู้คืน GUI และกระบวนการทางธุรกิจ
การปกป้องข้อมูลและความเสถียรของการถ่ายโอน
- ระหว่างการถ่ายโอนจะคง timestamp และตรวจสอบ checksum อยู่เสมอ
- แม้อยู่ในสภาพแวดล้อมที่มีแบนด์วิดท์จำกัด การเชื่อมต่อขาด ๆ หาย ๆ หรือมีโควตา ก็สามารถเริ่มใหม่ต่อจากไฟล์ที่ถ่ายโอนสำเร็จล่าสุดได้
- สามารถตรวจสอบความถูกต้องสมบูรณ์ของไฟล์ได้ด้วยคำสั่ง check
- หากเป็นไปได้ จะใช้ การถ่ายโอนฝั่งเซิร์ฟเวอร์ เพื่อลดการใช้แบนด์วิดท์ฝั่งโลคัล และถ่ายโอนระหว่างผู้ให้บริการได้โดยไม่ต้องผ่านดิสก์โลคัล
- ความสามารถด้านการถ่ายโอนประกอบด้วย
- ตรวจสอบความถูกต้องของไฟล์ด้วยแฮช MD5, SHA1
- คงค่า timestamp ของไฟล์
- งานที่สามารถเริ่มใหม่ได้ทุกเมื่อ
- การถ่ายโอนผ่านเครือข่ายระหว่างผู้ให้บริการคลาวด์ต่างราย
- การดาวน์โหลดแบบมัลติเธรดลงดิสก์โลคัล
สถานการณ์การสำรองข้อมูล กู้คืน และย้ายระบบ
- สำรองข้อมูลไฟล์ไปยังคลาวด์สตอเรจ และเข้ารหัสได้หากต้องการ
- กู้คืนไฟล์จากคลาวด์สตอเรจ และถอดรหัสได้หากต้องการ
- สามารถมิเรอร์ข้อมูลบนคลาวด์ไปยังบริการคลาวด์อื่นหรือโลคัลได้
- สามารถย้ายข้อมูลขึ้นคลาวด์ หรือย้ายระหว่างผู้ให้บริการคลาวด์สตอเรจได้
- เมานต์คลาวด์สตอเรจหลายแบบที่เข้ารหัส มีแคช หรือมีความต่างกัน ให้ใช้งานเหมือนดิสก์
- วิเคราะห์และสรุปข้อมูลในคลาวด์สตอเรจด้วย lsf, ljson, size, ncdu
- ใช้ Union เพื่อทำให้ระบบไฟล์แบบโลคัลหรือคลาวด์หลายตัวแสดงผลเหมือนเป็นตัวเดียวได้
งานกับไฟล์และการให้บริการ
- Copy ใช้คัดลอกไฟล์ใหม่หรือไฟล์ที่เปลี่ยนแปลงแล้วไปยังคลาวด์สตอเรจ
- Sync ใช้ทำให้ไดเรกทอรีเหมือนกันแบบทิศทางเดียว
- Bisync ใช้ซิงก์สองไดเรกทอรีแบบสองทิศทาง
- Move ใช้ย้ายไฟล์ไปยังคลาวด์สตอเรจ พร้อมลบไฟล์โลคัลหลังตรวจสอบแล้ว
- Check ใช้ตรวจสอบแฮช รวมถึงไฟล์ที่ขาดหายหรือถูกเพิ่มเข้ามา
- Mount ใช้เมานต์คลาวด์สตอเรจเป็น network disk
- Serve ใช้เปิดให้บริการไฟล์โลคัลหรือรีโมตผ่าน HTTP, WebDAV, FTP, SFTP, DLNA
- GUI แบบเว็บ เป็นฟีเจอร์ทดลอง
การเมานต์และ virtual backend
- เมานต์ระบบไฟล์แบบโลคัล คลาวด์ และเสมือน ให้ใช้งานเป็นดิสก์ได้บน Windows, macOS, Linux, FreeBSD
- ระบบไฟล์เดียวกันนี้ยังสามารถเปิดให้บริการผ่าน SFTP, HTTP, WebDAV, FTP, DLNA ได้
- virtual backend ใช้ครอบระบบไฟล์โลคัลหรือคลาวด์เพื่อเพิ่มความสามารถเพิ่มเติม
ผู้ให้บริการที่รองรับและการติดตั้ง
- ผู้ให้บริการที่รองรับ ได้แก่ Amazon S3, Backblaze B2, Box, Dropbox, Google Cloud Storage, Google Drive, Microsoft Azure Blob Storage, Microsoft OneDrive, Proton Drive, SFTP, SMB/CIFS, WebDAV และระบบไฟล์แบบโลคัล เป็นต้น
- ผู้ให้บริการอื่นที่ใช้โปรโตคอลมาตรฐานอย่าง WebDAV หรือ S3 ก็มักใช้งานได้ทันทีเช่นกัน
- Rclone เป็นซอฟต์แวร์ โอเพนซอร์ส ที่พัฒนาจนมีความสมบูรณ์ ได้แรงบันดาลใจจาก rsync และเขียนด้วย Go
- Rclone ถูกรวมอยู่ในคลังแพ็กเกจทางการของ Ubuntu, Debian, Fedora, Brew และ Chocolatey
- แนะนำให้ดาวน์โหลดเวอร์ชันล่าสุดจาก rclone.org
- ลิงก์ที่เกี่ยวข้อง
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ชอบ rclone มาก จำได้ว่าหน้าโดเนตสมัยก่อนมีข้อความประมาณว่า “rclone เป็นโปรเจกต์ที่ทำด้วยใจเลยไม่ต้องการเงิน แต่ถ้าช่วยสมทบให้ผมซื้อดอกไม้ให้ภรรยาได้ก็จะขอบคุณมาก”
รู้สึกว่าเขาเป็นคนเท่มาก และดีใจที่ตอนนี้สามารถทำ rclone แบบเต็มเวลา ได้แล้ว หวังว่ายังคงเป็นงานที่คุ้มค่าและมีความหมาย
ไปเจอหน้าเว็บสมัยนั้นบน archive.org แล้ว อบอุ่นกว่าที่จำไว้เสียอีก:
“Rclone is a pure open source for love-not-money project. However I’ve had requests for a donation page and coding rclone does take me away from something else I love - my wonderful wife.”
“So if you would like to send a donation, I will use it to buy flowers (and other pretty things) for her which will make her very happy.”
https://web.archive.org/web/20180624105005/https://rclone.or...
rclone ยังสามารถ เมานต์คลาวด์สตอเรจให้เหมือนดิสก์โลคัล ได้ด้วย จึงเหมาะมากโดยเฉพาะเวลาใช้กับ Kubernetes
ถ้าใช้เหมือนไดรฟ์ในโฟลเดอร์เดียวกันที่มีไฟล์เยอะๆ ความเร็วอ่าน/เขียนอาจไม่ได้เร็วมาก แต่เป็นวิธีที่รวดเร็วและง่ายในการนำคลาวด์สตอเรจมาใช้ในโปรเจกต์
ยังทำ การเข้ารหัสแบบ end-to-end แยกตามตำแหน่งได้ด้วย เช่น ไฟล์ทั้งหมดที่ใส่ในไดรฟ์ที่เมานต์ไว้จะถูกเขียนลงในโฟลเดอร์
/fooของ Dropbox ในสภาพที่เข้ารหัสแล้ว ซึ่งดีตรงที่ผู้ให้บริการอย่าง Dropbox หรือ S3 ยังไม่รองรับการเข้ารหัสแบบ end-to-end แบบเนทีฟโดยรวมแล้ว rclone เป็นเครื่องมือที่น่ามีติดตัวไว้ และช่วยแก้ use case ได้เยอะมาก
เช่น Pi4 ของผมใช้ rclone FTP server เปิด Dropbox ให้เข้าถึงได้ในเครือข่ายภายใน และใช้ FTP server แยกต่างหากให้พรินเตอร์เครือข่ายบันทึกไฟล์สแกน บนเครื่องเดียวกันยังรันการแบ็กอัปอัตโนมัติของคลาวด์สตอเรจของครอบครัวและเพื่อนสนิทด้วย rclone ด้วย ในเครือข่ายภายในของผม rclone แทบจะเป็นผู้กอบกู้เลย
ผมเมานต์ Google Drive ใช้ทั้งบนเดสก์ท็อปและแล็ปท็อป ปัญหาบนแล็ปท็อปคือระบบปฏิบัติการมองไดรฟ์เป็นโลคัล และ rclone ไม่ timeout เมื่อเกิด network error ถ้าแอปพลิเคชันพยายามอ่านหรือเขียนไดรฟ์ตอนที่ไม่ได้เชื่อมต่อ Wi-Fi มันจะค้างไปตลอดกาล เช่น ถ้าเปิดหน้าต่าง Thunar ค้างไว้ใน XFCE UI ส่วนใหญ่ก็อาจถูกล็อกไปด้วย
เช็กดูแล้วเป็น FUSE
Insync ก็ไม่ค่อยดี Google Drive ก็ไม่ค่อยดี แต่ถ้าเป็นงานที่ต้องพึ่งพาทุกวัน ผมรู้สึกว่าจำเป็นต้องมีสำเนาไฟล์ในเครื่องและการซิงก์ระหว่างเครื่องกับเซิร์ฟเวอร์แบบทันที โดยเฉพาะตอนการเชื่อมต่ออินเทอร์เน็ตไม่เสถียร
แน่นอนว่าโดยทั่วไปฝั่งบริการแทบไม่ต้องทำอะไรเป็นพิเศษเพื่อรองรับการเข้ารหัสฝั่งไคลเอนต์อยู่แล้ว
สำหรับการเข้ารหัสฝั่งไคลเอนต์ยังมีไคลเอนต์ S3 แบบเข้ารหัสแยกต่างหากด้วย: https://docs.aws.amazon.com/amazon-s3-encryption-client/late...
วิธีใช้ rclone ที่ผมชอบคือ rclone ncdu: https://rclone.org/commands/rclone_ncdu/
ผู้ให้บริการพื้นที่คลาวด์ส่วนใหญ่ไม่แสดงว่าแต่ละโฟลเดอร์และโฟลเดอร์ย่อยใช้พื้นที่จริงเท่าไร ซึ่ง rclone ncdu เข้ามาตอบโจทย์ตรงนี้พอดี
ใช้ rclone ทุกวัน บางกรณีก็ใช้แทน sshfs ไปแล้ว
ผมดันแชร์
$Archiveจากโฮมเซิร์ฟเวอร์ไปยัง rsync.net และดึงรูปจากบัญชี Google ของผม ภรรยา แม่ พ่อ และลูกๆ เข้ามาไว้ใน$Archiveรวมถึงบัญชีคลาวด์สำหรับ$WORKที่ต่างกัน 3 บัญชีก็รวบรวมเข้า$Archiveแล้วส่งต่อไป rsync.netนี่เป็น เครื่องมือระดับสุดยอด จริงๆ
https://rclone.org/commands/rclone_mount/
ปัจจุบัน SSHFS ไม่มีคนที่คอนทริบิวต์อย่างแข็งขันและสม่ำเสมอ และมี issue ที่ทราบอยู่หลายรายการ
https://github.com/libfuse/sshfs#development-status
สำหรับการสำรองข้อมูล Restic ก็น่าลองดูเช่นกัน rclone กับ Restic ใช้ร่วมกันได้ดีมาก
https://www.bobek.cz/blog/2020/restic-rclone/
โชคดีที่มี https://github.com/creativeprojects/resticprofile ที่ช่วยแก้ปัญหานี้ได้
ผมไม่ชอบแนวทางที่ใครบางคนเหมารวมว่าการตัดสินใจของตัวเองดีที่สุดในโลกในทุกสถานการณ์ และคนอื่นผิดหมด
ผมรู้ว่าผมกำลังทำอะไรอยู่ และมีเหตุผลที่สมเหตุสมผลมากที่ไม่อยากเข้ารหัสแบ็กอัป
Restic สามารถสำรองข้อมูลโดยค่าเริ่มต้นได้ แต่อนุญาตสวิตช์อย่าง
--do-not-encryptก็ได้ความเย่อหยิ่งของนักพัฒนาน่าทึ่งมาก และเพราะแบบนั้นผมจะไม่ใช้ Restic น่าเสียดายยิ่งกว่าเพราะมันเป็นโซลูชันสำรองข้อมูลที่ดีมาก
ใช้ Borg น่าจะดีกว่า
หลายเครื่องสำรองข้อมูลด้วย Restic ไปยังเซิร์ฟเวอร์ภายในทุกชั่วโมง และใช้ rclone ซิงก์แบ็กอัปนั้นไปยัง S3 ทุกวัน
วิธีนี้ช่วยลดจำนวนงานอ่าน/เขียน ทำให้กู้คืนได้เร็วขึ้น และจำกัดเครื่องที่มีสิทธิ์เข้าถึง S3 ให้เหลือเครื่องเดียวได้
https://github.com/gilbertchen/duplicacy
Rclone รองรับ storage backend จำนวนมาก และยังมี crypt backend ที่สามารถเข้ารหัส storage backend ใด ๆ ก็ได้
https://rclone.org/overview/
https://rclone.org/crypt/
ชอบตรงที่หน้าเว็บประกาศอย่างมั่นใจว่าใช้ การตรวจสอบ checksum เสมอ
เมื่อก่อนเคยตกใจที่เห็นว่าเครื่องมือจำนวนมากข้ามขั้นตอนนี้ไป แน่นอนว่ามันทำให้ช้าลง แต่ถ้าคุณกำลังซิงก์ระหว่าง cloud storage ก็มีโอกาสสูงมากที่คุณจะอยากตรวจสอบ checksum จริง ๆ
มีคนดูไคลเอนต์โอเพนซอร์สแล้ว reverse engineer Proton Drive API เพื่อทำปลั๊กอิน Rclone
ตอนนี้เป็นวิธีเดียวที่จะใช้ Proton Drive บน Linux
Rclone เป็นเครื่องมือที่เหมือนมีเวทมนตร์ และผมใช้กับงานหลากหลายมากมาย
ครั้งล่าสุดที่ตรวจดู มันไม่ได้ใช้ AWS SDK หรือไม่ก็รองรับ Go version แบบจำกัด จึงใช้การตั้งค่าทั้งหมดใน
.aws/configไม่ได้แต่ก็พอเข้าใจได้ในระดับหนึ่งว่าเครื่องมืออเนกประสงค์แบบนี้จะไม่รองรับฟีเจอร์ของทุก backend
ในเอกสารมีคำเตือนมากมายเกี่ยวกับฟีเจอร์ที่ไม่ได้บำรุงรักษาแล้วและฟีเจอร์ทดลอง เช่น caching ตัวคำเตือนเองถือว่ายุติธรรม แต่ไม่ได้บอกข้อจำกัดที่เฉพาะเจาะจงอย่างชัดเจน
ชอบ Rclone จริง ๆ เป็น เครื่องมือที่มีคุณค่า เมื่อคนที่ไม่คุ้นกับเทคโนโลยีอัปโหลดข้อมูลจำนวนมากไว้บนคลาวด์สำหรับผู้บริโภค/ธุรกิจ แล้วต้องดึงข้อมูลนั้นกลับมายังเซิร์ฟเวอร์เพื่อประมวลผลต่อไม่ทางใดก็ทางหนึ่ง
เมื่อมีข้อมูลจำนวนมากและอินเทอร์เน็ตบ้านไม่ดี มันก็ยอดเยี่ยมสำหรับการโอนตรงระหว่างคลาวด์ด้วยเช่นกัน วาง rclone ไว้บนเซิร์ฟเวอร์ที่เครือข่ายดีแล้วรันใต้ tmux งานก็จะเดินต่อไปแม้คอมพิวเตอร์ของผมไม่ได้เปิดอยู่
nohup /usr/bin/rclone ... &>/dev/null &รันแบบนี้แล้วล็อกเอาต์ออกไปก็ยังทำงานต่อ