לדלג לתוכן

Rclone

דוקומנטציה

Cache

שווה להבין קבצי tmp: במקום להשתמש בחיבור לרשת כל הזמן כדי לקבל דאטה מהשרת ולכתוב אליו, rclone משתמש ב-cache. ה-cache היא תיקיה מקומית שמחקה את התיקיה של הדרייב, והוא יכול לבצע את הפעולות עליה ברמה המקומית. ברגע שיש "תמונה" של הדאטה בקאצ' המקומי, הסנכרון קורה משם ויכול לקחת יותר זמן בלי שדברים יעשו מוזרים. - יש שני מצבים של קאצ' ב-rclone: 1. Write - קאצ' שמתבצע לשינויים מצד המחשב, עד שהם מסונכרנים לדרייב. אם כתבנו בקובץ טקסט שנמצא על הדרייב: הדאטה של השינויים עולה לקאצ' ומשם מתחילה העלאה לדרייב. ככה, אנחנו לא ניקלע למצב שכתבנו, רעננו את הקובץ לפני סוף הסנכרון, ועכשיו אנחנו שוב על הגרסה הישנה.

  1. Read - קאצ' שמתבצע לקבצים שהמחשב קורא מתוך הדרייב, כמו מן "אינדקס" ששומר אותם מקומית כדי שיהיה אפשר לחזור אליהם במהירות.

  2. **ויש גם שני סוגים של קאצ':

  3. Metadata Cache ('dir cache') זוכר את ה-File Structure של הדרייב. כלומר: איזה קבצים נמצאים איפה, אילו תיקיות יש וכו'. הופך את העיון בדרייב למהיר יותר, אבל לא שומר דאטה של קבצים, כלומר גם לא שינויים בקבצים.
  4. 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.?>" כדי להשמיט קובץ