אינטרנט זה אינטרנט, וועד בית זה ועד בית

איך לסנכרן סקריפטי גריזמאנקי בין מחשבים שונים בעזרת Dropbox

Read the english version here

אני משתמש הרבה בגריזמאנקי, בין אם בסקריפטים מוכנים (Folders4Gmail, לדוגמה) ובין אם כאלה שאני מכין בעצמי (כמו זה, זה, והרבה אחרים שלא פירסמתי). זה כלי מאוד שימושי, ועל כך אין עוררין.

פיצ'ר חשוב מאוד שחסר לי בגריזמאנקי - או יותר נכון, בפיירפוקס בכלליות - הוא האפשרות לסנכרן את ספריית הסקריפטים שלי בין מחשביי השונים. עבור חלק מההגדרות של פיירפוקס קיימים כבר תוספים לסנכרון (כמו Foxmarks לסימניות, שכבר הודיעו שהם שוקלים לאפשר גם סינכרון לגריזמאנקי), אבל אין פתרון מספק כרגע לגריזמאנקי, ולכן ניסיתי לתפור פתרון כזה בעצמי.

אני צריך פתרון שיוכל לסנכרן בין מערכות הפעלה שונות (לינוקס וחלונות, במקרה שלי). תחילה שיתפתי את תיקיית הסקריפטים של גריזמאנקי בלינוקס, והתחברתי אליה במחשב הנייד שמריץ XP. זה עבד מעולה כצפוי, אבל מכיוון שמדובר במחשב נייד, צריך למצוא פתרון למקרה בו המחשב נמצא מחוץ לרשת הביתית.
מיפוי תיקיות הסקריפטים לשרת FTP מרוחק עבד בצורה איטית מדי, וכל פעולה שקשורה בעדכון או טעינה של הסקריפטים ערכה זמן רב, דבר בעייתי במיוחד עם סקריפטים שרצים על כל דף שייפתח בדפדפן ללא כל סינון.

הפתרון הטוב ביותר שהגעתי אליו הוא Dropbox, שמאפשר שיתוף קבצים בין מחשבים ומערכות הפעלה שונות דרך השרת שלהם בצורה פשוטה עד גיחוך. כדי להשתמש בשירות יש להוריד ולהתקין את תוכנת צד הלקוח על כל מחשב בו רוצים לסנכרן קבצים - חלונות, לינוקס או מק.

בחלונות XP

הורידו והתקינו את התוכנה לפי ההוראות. אם זה המחשב הראשון עליו אתם מתקינים, תתבקשו תחילה להירשם לשירות דרך אשף ההתקנה. לאחר סיום ההתקנה תיווצר לכם תיקייה בשם My Dropbox תחת My Documents. זוהי תיקיית הסנכרון שלכם.
העבירו את תיקיית הסקריפטים של גריזמאנקי (בד"כ C:\Documents and Settings\<User>\Application Data\Mozilla\Firefox\Profiles\<Profile>\gm_scripts) לתיקיית הסנכרון. Dropbox תזהה מיד את הקבצים החדשים ותעלה אותם לחשבון שלכם בשרת.
לאחר מכן יש לגרום לגריזמאנקי לקרוא את הסקריפטים מהתיקייה החדשה. הדרך המסובכת היא לשנות בקוד שלו את שם התיקייה, אבל זה די טפשי. במקום זה עדיף לקשר בין התיקייה הישנה לחדשה. לשם כך תצטרכו להוריד את Junction ולחלץ את הקובץ junction.exe מהזיפ למקום ידוע כלשהו (c:windows הוא מקום טוב כי הוא תמיד נמצא ב-path).
לאחר מכן פיתחו את שורת הפקודה (Run > Start > cmd) והזינו את הפקודה הבאה:

junction C:\Documents and Settings\<User>\Application Data\Mozilla\Firefox\Profiles\<Profile>\gm_scripts C:\Documents and Settings\<User>\My Documents\My Dropbox\gm_scripts

פקודה זו תקשר בין התיקייה gm_scripts שבפרופיל הפיירפוקס שלכם לתיקייה בעלת אותו השם ב-Dropbox שלכם. שימו לב שלא מדובר ביצירת העתק, אלה בשתי תיקיות שבעצם מכילות את אותם הקבצים בדיוק (עוד על הקונספט).
כמו כן, שימו לב שציינתם את הנתיבים המדוייקים של פרופיל הפיירפוקס ותיקיית ה-Dropbox שלכם.

לאחר מכן כל מה שנשאר הוא להפעיל מחדש את פיירפוקס, והוא כבר יקרא את הסקריפטים מחשבון ה-Dropbox שלכם.

בלינוקס

התקינו את התוכנה לפי ההוראות. מכיוון שאני משתמש ב-KDE לא התקנתי מהחבילות שבאתר אלא עקבתי אחר ההוראות האלה (תודה יהונתן), שנראות לי ברורות מספיק, אז לא אחזור עליהן כאן.

בסיום ההתקנה הריצו את שתי הפקודות הבאות בשורת הפקודה:

$ mv ~/.mozilla/firefox/profiles/<Profile>/gm_scripts/ ~Dropbox
$ ln -s ~/Dropbox/gm_scripts/ ~/.mozilla/firefox/profiles/<Profile>/gm_scripts/

רק אל תשכחו להשתמש בפרופיל המתאים בפיירפוקס, ולקשר לתיקיית ה Dropbox הנכונה במקרה שבחרת בכתובת אחרת להתקנה.
אתחלו את הדפדפן ואתם מסודרים.

לסיכום

שימו לב שאם התקנתם סקריפט במחשב אחד תצטרכו לאתחל כל דפדפן אחר שמסונכרן אליו כדי שהסקריפט יתווסף גם אליו. עדכונים לסקריפטים קיימים לא אמורים לדרוש אתחול.

לפי אותו העקרון אפשר גם לסנכרן אלמנטים נוספים מהדפדפן שלכם (חפשו קבצי sqlite בתיקיית הפרופיל שלכם, כמו cookies.sqlite ו-places.sqlite), אבל לא ניסיתי את זה.

עדכון לגבי הדיסק החיצוני

לפני כמעט חודש כתבתי על ההתלבטות שלי לגבי מערכת קבצים להתקנה על הדיסק החיצוני. ההתלבטות המרכזית היתה בין בין FAT ל-NTFS, ובסוף החלטתי לנסות את FAT דווקא.

זו היתה טעות, ודי מהר הגעתי למסקנה ש-NTFS עדיפה, אפילו עם הדרייבר הלא מושלם ללינוקס. כח העיבוד הנדרש לא משמעותי כל כך כמו שחשבתי כשמדובר באחסון לטווח ארוך, ומגבלת ה-4GB של FAT32 בעייתית מדי. בינתיים אני מרוצה מ-NTFS, ואני מקווה שזה לא ישתנה.

מה שכן, אני מתקשה למצוא כרטיס SATA2 עם יציאה חיצונית וממשק PCI (ולא PCI-Express, שלוח האם הישן שלי לא מכיר). מצאתי רק אחד כזה בינתיים, והוא לא זול. יכול להיות שכבר עדיף לשדרג לוח אם.

מערכת קבצים לשימוש בדיסק חיצוני

לראשונה בחיי קניתי דיסק חיצוני. הגישה שלי עד כה היתה שעדיף תמיד להוסיף דיסק פנימי מכיוון שהם זולים ואמינים יותר, אומנם הפעם החלטתי לחרוג ממנהגי וללכת על האפשרות החיצונית. עד עכשיו היו לי 450GB מחולקים בצורה לא שווה בין לינוקס וחלונות, כשמעל חצי מהם מכילים סדרות שהורדתי ואין לי לב למחוק.

את הדיסק החיצוני החלטתי לקנות כשעלה הצורך בהרבה שטח זמין לטובת עריכת וידאו. שעת וידאו בפורמט Raw DV, שהוא הפורמט הטבעי של מצלמת הוידאו, תופסת כ-12GB. מכיוון שלא ידעתי – ואני עדיין לא יודע – האם אערוך את הוידאו בלינוקס או בחלונות, החלטתי שחלוקה מחדש של הדיסקים הפנימיים לטובת הפרוייקט הזה מיותרת, ובחרתי בדיסק חיצוני מדגם WDH1CS10000. מה שחשוב לדעת עליו הוא שהוא מסדרת My Book של Western Digital בנפח 1TB (שהם בעצם 932GB, ועוד על כך כאן), ושהוא תומך ב USB 2.0, שני חיבורי FireWire 400 ו- eSata. את שני הראשונים ניסיתי והם עובדים כמצופה. בקרוב, כשאתארגן על eSata למחשב (לוח האם שלי כבר בן ארבע שנים) אגיע למהירות הזהה למהירות החיבור של הדיסקים הפנימיים (300MB/s) ואהיה המאושר באדם.

WDH1CS10000

אז למה אני מספר את הסיפור המשעמם הזה? כי יש לי בעיה. והבעיה היא מערכת הקבצים. בעולם מושלם בו כל מערכות הקבצים של מיקרוסופט נתמכות בלינוקס ובמק בצורה מלאה ולהיפך הייתי יכול לבחור מערכת קבצים לפי שיקולים טכניים גרידא – מהירות, ניצול שטח הדיסק, שחזור נתונים וכד' – אבל בעולם האמיתי אין לי את הפריווילגיה הזו. אני רוצה שאוכל לגשת אליו כשהמחשב שלי מריץ חלונות או לינוקס, ובמקרים קיצוניים לחבר אותו למחשבים אחרים בלי לחשוש מתאימות. מערכות הקבצים של לינוקס לא נתמכות תחת חלונות. יש כמה תוכנות צד שלישי שעושות את זה, אבל מהנסיון המועט שלי הן לא משהו, וזה לא פתרון טוב לעבודה על מחשב מזדמן. לכן, צריך להתקין מערכת קבצים חלונאית.

התחלתי מ-NTFS, שהיא מערכת הקבצים הטובה יותר של מיקרוסופט, וכמובן שעל חלונות הכל עבד נהדר. בלינוקס היתה בעיה מעצבנת. NTFS היא מערכת קבצים סגורה שלא נתמכת בצורה טבעית תחת לינוקס. מה שכן יש הוא דרייבר די מבוסס שמוסיף תמיכה כזו, אבל הוא לא מושלם. הבעיה שלי איתו היתה כשהעברתי תיקייה של כמה ג'יגות לדיסק החדש וגיליתי שהפעולה הפשוטה הזו עולה לי בהרבה כח עיבוד, עד כחמישים אחוזים מכוחו של המעבד שלי! לא רק שזה מגדיל את זמן הכתיבה והקריאה, זה גם מקשה מאוד על עבודה שוטפת תוך כדי.

אז עברתי ל-FAT32. בניגוד ל-NTFS, מערכת הקבצים FAT נתמכת בצורה טובה הרבה יותר בלינוקס ובמק. זו אחת הסיבות לכך שגאדג'טים המכילים שטח אחסון – דוגמת Disk on Key, נגני מוזיקה ודיסקים חיצוניים – לרוב משתמשים במערכת קבצים זו. העבודה איתה היתה פשוטה ומהירה בלינוקס, עד שניסיתי להעביר קובץ של 16GB (שעה ורבע של צילום) וקיבלתי הודעת שגיאה שהזכירה לי את אחת המגבלות המרכזיות של FAT32 – גודל קובץ מירבי של 4GB. לולא הייתי מתעסק עם עריכת וידאו עכשיו זה לא היה משנה לי, אבל לצערי זה אומר שאצטרך לפצל את הקבצים למקטעים של עשרים דקות כל אחד.

עכשיו אני צריך להחליט בין שלוש אפשרויות: לחזור ל-NTFS ולעבוד עם קבצים גדולים על חשבון ביצועים נמוכים, להישאר עם FAT וביצועים טובים אבל קבצים עד 4GB, או ללכת על מערכת קבצים לינוקסאית ולשכוח מלהשתמש בדיסק תחת חלונות. כרגע נראה לי שאנסה להישאר עם FAT ולראות איך אני מסתדר עם זה, עד שאמצא רעיון טוב יותר.

 

 

* במהלך הכתיבה הבנתי לפתע ש-NAS היה כנראה פותר לי חלק מהבעיה. NAS (ר"ת Network-attached Storage) הוא שטח אחסון כלשהו שהגישה אליו נעשית דרך הרשת ולא בחיבור ישיר למחשב. ל-WD יש דגמים כאלה, שדי דומים למה שקניתי בסוף. היתרון ב-NAS הוא שהחיבור נעשה ברמת הרשת ולא ברמת מערכת הקבצים, כך שהמחשב שניגש אליו לא צריך להכיר בכלל את מערכת הקבצים הפנימית של הדיסק. כמו כן, קל יותר לשתף אותו בין מספר מחשבים ברשת. החסרון הוא ה-overhead שנוסף כאן בגלל המעבר דרך הרשת והעובדה שמדובר בקופסה שחורה יחסית (שזה אירוני, כי ה-NAS של WD דווקא לבן) שאי אפשר לפרמט אותה איך שרוצים. אני מוצא נחמה בעובדה שכנראה חייבים להריץ על הדגם המדובר FAT32 אחרת לא ניתן לשתף אותו ברשת, כך שהבעיה שלי לא באמת היתה נפטרת (אלא אם אפשר NTFS, ואז אולי כן)

FireStats icon Powered by FireStats