Rclone
Cache¶
שווה להבין קבצי tmp: במקום להשתמש בחיבור לרשת כל הזמן כדי לקבל דאטה מהשרת ולכתוב אליו, rclone משתמש ב-cache. ה-cache היא תיקיה מקומית שמחקה את התיקיה של הדרייב, והוא יכול לבצע את הפעולות עליה ברמה המקומית. ברגע שיש "תמונה" של הדאטה בקאצ' המקומי, הסנכרון קורה משם ויכול לקחת יותר זמן בלי שדברים יעשו מוזרים. - יש שני מצבים של קאצ' ב-rclone: 1. Write - קאצ' שמתבצע לשינויים מצד המחשב, עד שהם מסונכרנים לדרייב. אם כתבנו בקובץ טקסט שנמצא על הדרייב: הדאטה של השינויים עולה לקאצ' ומשם מתחילה העלאה לדרייב. ככה, אנחנו לא ניקלע למצב שכתבנו, רעננו את הקובץ לפני סוף הסנכרון, ועכשיו אנחנו שוב על הגרסה הישנה.
-
Read - קאצ' שמתבצע לקבצים שהמחשב קורא מתוך הדרייב, כמו מן "אינדקס" ששומר אותם מקומית כדי שיהיה אפשר לחזור אליהם במהירות.
-
**ויש גם שני סוגים של קאצ':
- Metadata Cache ('dir cache') זוכר את ה-File Structure של הדרייב. כלומר: איזה קבצים נמצאים איפה, אילו תיקיות יש וכו'. הופך את העיון בדרייב למהיר יותר, אבל לא שומר דאטה של קבצים, כלומר גם לא שינויים בקבצים.
- Data Cache - מסנכרן, זוכר ובודק את הדאטה של הקבצים בדרייב - ככה מזהים שינויים ועדכונים, לעומת הוספה ומחיקה של ה-dir cache.
ה-rclone יודע גם לעשות קאצ' לחלקים של קובץ וזו המשמעות של chunk
**תיקיית ה-cache ב-default היא ~/.cache/(rclone)
פקודות cache¶
מצבי cache:
- --vfs-cache-mode <mode>
Controls caching for the Virtual File System (VFS) layer (used when mounting).
- off
No caching (default).
- minimal
Cache only open files.
- writes
Cache writes for reliability.
- full
Cache both writes and reads for better performance.
הגדרות cache:
--cache-chunk-size <number kb/mb/gb>
Sets the size of chunks to cache (useful for partial file caching).--cache-dir PATH
Specifies the directory where cached files are stored.--cache-db-path PATH
Sets the path for metadata cache storage.--vfs-cache-max-size 10G
- קובע את הגודל המירבי של תיקיית הקאצ'--vfs-cache-max-age 24h
קובע אחרי כמה זמן הקאצ' נמחק ומתחיל רענון--dir-cache-time
קובע כמה זמן תתבצע כתיבת קאצ' כשזו כתיבה מראש (בכל מקרה יתבצע קאצ' לכתיבה/קריאה לפי ההגדרות). זו למעשה דרך להגיד לארקלון "כשאני עושה מאונט, תתחיל לכתוב קאצ' במשך איקס זמן ואז תנוח".
logs¶
-v, --v
verbose output
--log-file --log-level <level>
מגדיר אם ייכתבו לוגים ובאיזה רמה של פירוט
לשים לב שצריך להכריז "לוג פייל" ורק אז לבחור לוג לבל
רמות לוג:
- DEBUG
: Detailed debugging information.
- INFO
: Standard informational messages.
- NOTICE
: Less verbose than INFO.
- ERROR
: Only logs errors.
- CRITICAL
: Logs critical issues only.
בחירה של path ללוג:
--log-file=/path/to/logfile.log --log-level <level>
ב-default - לא זוכר
בשביל עדכונים על העלאות והורדות - צריך debug
polling¶
פולינג זה שונה מקאצ' - זה לא שולט באיזה קאצ' שומרים, כמה זמן הוא חי, כמה זמן מראש עושים קאצ' וכו'. זה שולט בקצב הרענון של קבצים שאנחנו באינטרקציה איתם. כשאני פותח קובץ וורד וכותב בו, כמה זמן עד שיראו את זה ב-rclone, אם הוא פתוח דרך ה-rclone במחשב אחר?
- --poll-interval 15s
קובע פעם בכמה זמן מתבצעת בדיקה לשינויים.
(אם יש לנו dir cache פעם בשעה, ואנחנו רוצים ששינויים ברמת ה-data יקרו מהר יותר, זה הפיתרון. האם poll int שולט ב-data cache וכל ההגדרות cache ב-metadata cache? לא סגור על זה, לחשוב על זה ולשאול את הצ'אט)
rc (remote control)¶
נועד כדי שתוכל לשגר פקודות למאונט גם אחרי שהרצת אותו. לא בטוח כרגע איך לשנות את הפקודה שלי, אבל לעשות כן.
--rc
--rc-addr :5572
כדי לעשות מאונט עם אפשרות ל-rc. זה עובד באמצעות פורט כלשהו - אז אפשר לא לכתוב אותו וזה ילך ל-5572, או שאפשר לכתוב איזה אחד רוצים.
rclone rc vfs/refresh dir=/path/to/folder
dir: The path to the folder you want to refresh, relative to the mount point.
Example: To refresh /mnt/gdrive/Documents
If you want to refresh the entire mount, leave dir empty:
rclone rc vfs/refresh
כדי לקבל סטאטים על הקאצ':
rclone rc vfs/stats
אם יש כמה remotes, צריך להגיד ל-rclone לאיזה אחד אתה פונה:
rclone rc vfs/refresh --rc-addr :5580 dir=/Documents
(וכמובן שאם יוצרים אחד שני, צריך להגיד ל-rclone איזה פורט הוא מקבל, כמו שמוסבר למעלה)
אין אפשרות לשנות cache mode ב-rc, רק בהרצה מחדש של המאונט
unmount¶
fusermount -u /path/to/mount
mount = היעד במחשב, לא הדרייב עצמו (ביגברו)
להשיג את המידע שצריך מגוגל:¶
ללכת ל-Google API Console Credentials ללחוץ על העיפרון ליד Rclone מה שצריך זה Secret ו-Client ID בתכלס
התקנה:¶
curl לקישור כלשהו, לבדוק
קונפיגורציה:¶
rclone config
mount:¶
עושה שהכונן יעלה בסייר הקבצים של המחשב nohup rclone mount mountname: path/to/mountpoint --vfs-cache-mode writes
nohup - לא חובה. להמשיך גם אם משהו משתנה במערכת mountname: כפי שהוגדר בקונפיגורציה --vfs-cache-mode writes עושה אותו מהיר. להבין אם עדיף פול במקום רייטס
המאונט ימשיך כל עוד הטרמינל רץ
copy¶
rclone copy path/to/folder mountname:path/in/mount -P -v
מעתיק קבצים מהמיקום שנבחר למאונט, לא מעתיק קבצים פעמיים (אלא אם השתנו) -P כדי להראות התקדמות -v כדי לקבל התראות של דיבגינג
sync¶
rclone sync path/to/folder mountname:path/in/mount -P -v
רץ בטרמינל ודואג שכל קובץ שנכנס לתיקיה יסתנכרן עם המאונט.
-P
כדי להראות התקדמות
-v
כדי לקבל התראות של דיבגינג
--links
כשיש בתיקיה המקומית סיםלינק, ברירת המחדל היא להעתיק את הקבצים שהוא מצביע אליהם. אם רוצים שרק יעתיק את ההצבעה עליהם, ולא את הקבצים עצמם, עושים את זה.
(תיקית ה-.config מצביעה לכל מיני מקומות... אנחנו רוצים שהקבצים ימשיכו להצביע, אבל שהקבצים שמצביעים עליהם ישארו רק במערכת המקומית...)
--exclude "<file_name_to_exclude.?>"
כדי להשמיט קובץ