Debian live

מחר אני נוסע לאינטל חיפה כדי לבדוק את הביצועים של תוכנה שאנחנו מפתחים על הדור הבא של המעבדים של אינטל (ארכיטקטורת Nehalem), שישוחררו עוד כחודש וחצי.
אני הולך לבדוק מכונה עם שני מעבדים של ארבעה ליבות כל אחד, כאשר כל ליבה מריצה שני נימים (אינטל מחזירים את הHyperThreading) – ככה שבעצם המוכנה הזו תהיה שקולה למדי למכונה עם 16 ליבות.
הארכיטקטורה החדשה של נהלם צפויה לתת ביצועים טובים משמעותית לעומת הדור הנוכחי (לכל ליבה), בצריכת חשמל יותר נמוכה.
מומלץ מאוד לראות את הדמו.

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

חשבתי לעצמי שיהיה נחמד לבוא עם סביבה מוכנה במקום לבוא ולהתקין הכל במקום בסביבה זרה, ומה יותר מתאים לזה מLIVE CD + כונן קשיח נייד?
הבחירה הטבעית שלי היתה Knoppix, הורדתי את הISO, העלתי אותו בVirtualBox, שמתי את האפליקציה על הדיסק הנייד והתחלתי לנסות להפעיל אותה.
למרבה הצער היו מלא בעיות, כשהקש ששבר את ראש הגמל היה שlibstdc++ היה מגרסא לא מתאימה.
החלטתי לוותר על התענוג, וביגוני חיפשתי בגוגל "Debian live cd".
התוצאה המפתיעה היא שיש פרוייקט בשם Debian live!

כמו תמיד עם live cd, חיפשתי מאיפה מורידים את הISO, התחלתי להוריד, ולמרבה המזל מהירות ההורדה היתה כ20K בשניה.
למה מזל?
כי במהירות כזו, היה לי מספיק זמן כדי להסתכל קצת מסביב.

About

A Debian Live system is a Debian operating system that does not require a classical installer to use it. It comes on various media, including CD-ROM, USB sticks, or via netboot.

Why Debian Live?
Although the Debian Live project is about the framework to create your own customized Live system, we offer some prebuilt images. Currently, builds for three desktop environments (GNOME, KDE and Xfce) as well as the standard system are available.

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

מסתבר שהתהליך הוא פשוט במיוחד. כדי ליצור דיסק בסיסי ועובד:
[code]
apt-get install live-helper
mkdir live-cd
cd live-cd
lh_config
lh_build
[/code]

במילים, מתקינים את live-helper, יוצרים ספרית עבודה, משתמשים בlh_config כדי ליצור קופיגורציה בסיסית, ובlh_build כדי לבנות ממנה ISO.
התהליך יכול לקחת זמן, ומומלץ להתקין את apt-cacher כדי לחסוך בזמני הורדה של חבילות דביאן.
אפשר לבדוק את הISO עם VirtualBox. המערכת שהוא מכיל היא בסיסית מאוד, אבל אפשר להתקין בתוכה מה שרוצים עם apt-get.
יש כמה דרכים להוסיף חבילות שיהיו מותקנות מראש בISO:
כדי להוסיף חבילות סטנדרטיות, בסך הכל צריך להוסיף את השם שלהן בLH_PACKAGES בקובץ config/chroot בספרייית הקונפיגורציה שיצרתם.
יש גם דרכים להוסיף חבילות מותאמות אישית, ואפשר גם להוסיף קבצים ספציפייים בקלות.
מי שהתקין את apt-cacher ירצה לשנות את מקורות ההתקנה של יצירת הISO, אפשר לעשות את זה על ידי עריכה של config/bootstrap.

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

אני ממליץ בחום על Debian live למי שצריך Live CD.
קל מאוד ליצור דיסקים איתו, והתוצאה היא מערכת דביאן לכל דבר, שעולה מCD/DVD.

Facebook Comments

לינוקס לאמא

סידרתי לאמא שלי מחשב, ועליו לינוקס בלבד.
המחשב די ישן, אבל בהחלט מספיק: פנטיום 4 במהירות 2.6 ג'יגה הרץ עם 512 מגה זכרון ודיסק של 80GB.
אמא שלי חסרת כל נסיון עם מחשבים, ולא השתמשה במחשב מעולם עד עכשיו.
התקנתי לה דביאן לני, עם פיירפוקס ות'אנדרבירד בעברית (התקנות ידניות, אין את החבילות האלו בלני), וגם KDE בעברית כדי שתרגיש בנוח.
סך הכל אני אופטימי, בתוך יום אחד היא למדה את הדברים הבסיסיים (הפעלה וכיבוי של המחשב, גלישה באינטרנט, שליחה וקבלת אימיילים).
אני מרוצה מזה שאני אוכל לעזור לה מרחוק בלי בעיה:
התקנתי שרת SSH, ודאגתי שהמחשב שלה יהיה זמין בHOST קבוע (למרות שאין לה כתובת IP קבועה).

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

Facebook Comments

בונזו'ר

אני שומע את סדרת הספרים The uplift saga של דיוויד ברין.
היום סיימתי לשמוע את הספר השלישי (מתוך שישה), והחלטתי לעדכן את הפודקסטים שלי; הפעלתי את הiTunes המאוס, ולא הופתעתי לראות עדכון לiTunes 8.
מה שכן הפתיע אותי זה שאפל בחרו לדחוף לי משהו בשם בונזו'ר לחלונות, כדי .. לשפר את האבטחה של בונזו'ר לחלונות.
לא ידעתי שיש לי את בונז'ור הזה.
סירבתי להזמנה הנדיבה בתקיפות.

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

שינאה.

Facebook Comments

גיבויים בלינוקס

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

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

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

הגיבוי התמים הוא פשוט להעתיק את הקבצים, כמו שהם, לספריה אחרת (ואולי למחשב אחר).
הבעיה עם זה היא שקבצים שלא משתנים יתפסו מקום כל פעם מחדש, מה שאומר שסך הכל הצריכה של המקום תהיה גבוהה מאוד.
הפתרון הוא לאכסן רק קבצים חדשים, אבל איך אפשר יהיה לשמור על הפשטות של השיטה התמימה?
אם אבד לי קובץ, אני רוצה לגשת לגיבוי של אתמול ולמצוא אותו שם, גם אם הוא לא השתנה כבר חודש.
כדי להנות משני העולמות, אפשר להשתמש בשיטה הבאה:
נגבה עם rsync, ולפני הגיבוי הבא, נעתיק את הספריה שגיבינו למקום חדש, אבל במקום להעתיק ממש את הקבצים ניצור hard-links לקבצים, ואז נגבה שוב עם rsync.
ברגע שrsync יזהה שקובץ השתנה, הוא יצור קובץ חדש במקום הלינק, ולא יפגע בקובץ המקורי שימשיך להיות זמין תחת הספריה המקורית שאליה הוא נכתב.
הרעיון הוא של מייק רובל, שפרסם אותו ב2004. מאז פותחו לא מעט סקריפטים שממשמשים את השיטה. אני משתמש בsnapback2 כדי לבצע את הגיבויים שלי.
כדי להתקין את snapback2, עקבו אחרי ההוראות האלו:

[code lang="bash"]
wget http://www.perusion.com/misc/Snapback2/Snapback2-0.913.tar.gz
tar xzf Snapback2-0.913.tar.gz
cd Snapback2-0.913/
cpan -i Config::ApacheFormat
perl Makefile.PL && make && make test && make install && echo great success
[/code]
cpan הוא מנגנון ניהול החבילות של שפת פרל. אם לא הפעלתם את cpan לפני כן, הוא ישאל כמה שאלות די קלות לפני שהוא יתקין את Config::ApacheFormat.
שימו לב לפלט של הפקודה האחרונה, אם הוא לא מסתיים ב "great success" אז היתה בעיה בהתקנה.
snapback2 עובד דרך הרשת, מה שאומר שאפשר לגבות איתו בקלות מכונה אחרת או את המכונה המקומית, אבל קודם צריך לדאוג לכך שנוכל להכנס בלי סיסמא (זהירות עם זה, צריך לשמור על הקובץ id_dsa.pub מכל משמר, כי מי שישיג אותו יוכל להכנס למכונה שאתם מגבים!).
[code lang="bash"]
ssh-keygen -t dsa
cat ~/.ssh/id_dsa.pub | ssh root@other_machine "cat – >> ~/.ssh/authorized_keys"
[/code]

קובץ ההגדרות /etc/snapback/snapback2.conf של snapback נראה ככה:
[code lang="xml"]
Hourlies 2
Dailies 7
Weeklies 4
Monthlies 4
AutoTime Yes

AdminEmail root

LogFile /var/log/snapback.log
ChargeFile /var/log/snapback.charges

SnapbackRoot /etc/snapback

DestinationList /root/backup


Exclude /cdrom
Exclude /dev
Exclude /home/*/temp
Exclude /media
Exclude /proc
Exclude /tmp
Exclude /var/cache
Exclude /var/log
Exclude /var/lib/mysql
Exclude /root/backup # Important not to backup the backup 🙂

Directory /

[/code]

הקובץ הזה מגבה את כל מה שרלוונטי, ואולי כמה דברים לא רלוונטים שעדיין לא הכנסתי לExclude.
ויוצר מבנה ספריות דומה לזה:
[code lang="xml"]
`– root@server.com
|– daily.0
| |– bin
| |– boot
| | …..
| `– www -> /var/www
|– daily.1
| |– bin
| |– boot
| | …..
| `– www -> /var/www
|– daily.2
| |– bin
| |– boot
| | …..
| `– www -> /var/www
|– hourly.0
| |– bin
| |– boot
| | …..
| `– www -> /var/www
`– hourly.1
|– bin
|– boot
| …..
`– www -> /var/www
[/code]

כדי להריץ את הגיבוי אוטומטית פעם ביום ניצור קובץ הרצה בcron.daily
[code lang="bash"]
echo "#! /bin/sh" > /etc/cron.daily/snapback2
echo "/usr/bin/snapback2" >> /etc/cron.daily/snapback2
chmod +x /etc/cron.daily/snapback2
[/code]
חדי העין ישימו לב שלא גיביתי את /var/lib/mysql, שמכילה את בסיסי הנתונים של MySQL.
הסיבה היא שלא מומלץ לגבות את בסיס הנתונים של MySQL על ידי העתקת הקבצים, במיוחד אם השרת רץ (והוא רץ כל הזמן), כדי לא לתפוס קבצים תוך כדי שהם נכתבים (מה שיגרום לגיבוי של בסיס הנתונים להיות דפוק).
גיבוי MYSQL
אני משתמש בסקריפט הזה, שמגבה את אל בסיסי הנתונים אל /var/backups/mysql, ויוצר מבנה ספריות דומה לזה:
[code lang="xml"]
|– daily
| |– omry_blogs
| | |– omry_blogs_2008-09-21.Sunday.sql.gz
| | |– omry_blogs_2008-09-22.Monday.sql.gz
| | |– omry_blogs_2008-09-23.Tuesday.sql.gz
| | |– omry_blogs_2008-09-24.Wednesday.sql.gz
| | |– omry_blogs_2008-09-25.Thursday.sql.gz
| | `– omry_blogs_2008-09-26.Friday.sql.gz
| | `– omry_paypal_2008-09-26.Friday.sql.gz
| `– omry_wordpress_en
| |– omry_wordpress_en_2008-09-21.Sunday.sql.gz
| |– omry_wordpress_en_2008-09-22.Monday.sql.gz
| |– omry_wordpress_en_2008-09-23.Tuesday.sql.gz
| |– omry_wordpress_en_2008-09-24.Wednesday.sql.gz
| |– omry_wordpress_en_2008-09-25.Thursday.sql.gz
| `– omry_wordpress_en_2008-09-26.Friday.sql.gz
|– monthly
`– weekly
[/code]
כמובן שהספריות האלו מגובות אוטומטית במסגרת הגיבוי של מערכת הקבצים.
כדי להשתמש בסקריפט, יש לשים אותו ב/etc/cron.daily ולערוך אותו ככה ששם המשתמש והסיסמא יהיו אלו של משתמש שמורשה לגשת לכל בסיס הנתונים. לא לשכוח לשנות את ההרשאות של הקובץ ככה שרק root יוכל לקרוא אותו.
כדי לחסום את הנפח שהגיבויים האלו תופסים, ניצור בcron.weekly סקריפט שמוחק גיבויי mysql ישנים מ60 יום:
[code lang="bash"]
echo "#!/bin/sh" > /etc/cron.weekly/delete_old_mysql_backups
echo "find /var/backups/mysql/ -type f -mtime +60 -exec rm {} \;" >> /etc/cron.weekly/delete_old_mysql_backups
chmod +x /etc/cron.weekly/delete_old_mysql_backups
[/code]

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

Facebook Comments

הרחקת יונים

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

Facebook Comments

עברתי דירה, ויש מקום לדיירי משנה

אם אתם קוראים את זה, אז אתם קוראים את זה מהשרת החדש.
זה היה די הרבה עבודה, ואני בטוח שזה לא נגמר עדיין.
* התקנתי פה שרת DNS, וכתבתי סקריפט לעדכון מרוחק (Dynamic DNS) כדי לעדכן את הIP של המכונה שבבית.
* התקנתי את trac בשביל firestats.cc (על הדרך שידרגתי ל0.11)
* התקנתי את הבלוג של פיירסטטס, את הדמו, את שרת הSVN וכו'.
* התקנתי כמובן את הבלוג הזה.
* דאגתי לשרת DNS משני.
* דאגתי לגיבוי אוטומטי של בסיסי הנתונים של MySQL
* דאגתי לגיבוי אוטומטי של כל הקבצים במערכת
* דאגתי שאימיילים שנשלחים לכתובות מסויימות בfirefang.net וfirestats.cc יקודמו אלי.

ועוד ועוד.

השרת הזה חזק, עם 2GB זכרון והרדיסק של 500GB.
ויש מקום לדיירים חדשים.
מה שאני יכול הציע זה:
1. מספר לא מוגבל של בסיסי נתונים – MySQL 5
2. מספר לא מוגבל של הוסטים וירטואליים.
3. גישת SHELL – כולל אפשרות להריץ מה שבא לכם על השרת, במסגרת הטעם הטוב: מומלץ לא לנסות לרנדר את Wall-E 2.
4. שרת מהיר
5. תחזוקה שוטפת כולל גיבויים.

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

מספר המקומות מוגבל, כל הקודם זוכה :).
מי שמעוניין, שישלח לי אימייל ויספר לי מה הוא רוצה להריץ על השרת, ואני אחליט על המחיר.
omry ב yadan נקודה net.

Facebook Comments

שחמט כנופיות

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

Facebook Comments

מחיקת היסטוריה סלקטיבית בפיירפוקס

הוורדפרס החדש הזה אכל לי פוסט, אינעל אבוק.

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

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

Facebook Comments

חוק אינסטנט

שלחתי היום לאופיר פינס:

שלום מר פינס,
אני עמרי ידן, אזרח ומפתח תוכנה.
היום עבר חוק הסדר דיור חלופי.
http://www.ynet.co.il/articles/0,7340,L-3594613,00.html
למרות שאין לי עניין מיוחד בחוק הזה ספציפית, דבר אחד חורה לי במיוחד:
החוק עבר בשני קולות, יו"ר הוועדה וח"כ קולט אביטל.

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

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

העתק ממכתב נשלח לאתר "עבודה שחורה" שפועל לקידום קשר ישיר בין בוחרים לנבחרים.

בתודה,
עמרי ידן.

עדכון:

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

בברכה,
מיטב דגן
עוזרו של ח"כ פינס

תגובתי:

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

ובשעה טובה:

לא.
לא התייחסתי כלל למהותה של ההצעה.
יכול להיות שיש מקום לקבוע מספר מינימלי של ח"כים שיוכלו להעביר חקיקה (גם במליאה אין).
נבחן את הנושא.

מיטב

Facebook Comments

שרת חדש

שכרתי שרת חדש ואני אעביר את כל הקונסטרוקציה אליו בשבועות הקרובים.
השרת הוא בesecuredata.com שמצטיינים במחיר מינימלי ובשרות מינימלי :).
השרת הוא :
Intel DUAL CORE E2140
2GB זכרון
500GB SATA (כן, לא SCSI).
ועולה רק 79$ לחודש, שזה מחיר חסר תחרות.
מצד שני, התמיכה שלהם כמעט לא קיימת, והם לא מתביישים בזה.
מומלץ רק למי שמסוגל לתפעל את השרת שלו בעצמו.
בטח יהיה לי עוד מה לספר בקרוב..

Facebook Comments