ועכשיו למשהו שונה לגמרי

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

#!/bin/bash
NEWDIR="/home/asafj/svn-script"
for file in $(svn status | tr -s ' ' ' ' | cut -d" " -f2)
do
declare -i DIRLEVEL=$(grep -o "\/" $file| wc -l)
DIRLEVEL=$( echo "$DIRLEVEL - 1" |bc )
SRCPATH=$(echo $file | cut -d"/" -f1-"$DIRLEVEL" )
mkdir -p $NEWDIR/$SRCPATH
cp -v $file $NEWDIR/$SRCPATH
done

לשימוש חופשי כמובן
יש לשים בPATH ולהריץ מהתיקיה הרלוונטית בSVN

היה קשה למצוא זמן שלכולכם פנוי :)
אבל תבואו להופעה, וגם תעשו אטנדינג בפייסבוק http://bit.ly/Shamen

האתר של השמנים

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

כמובן שכזה תהליך הוא עניין בסיסי ופשוט לכל לינוקסאי וישר יקפצו ויגידו כן בטח, טייל, גרפ וזהו, אז זהו שכן… ולא.
מכיוון שטייל עם הדגל -f היא פקודה שלא מחזירה קוד יציאה, נוצר איזהשהו באפר שהיא שומרת ובדרך כלל לא מועבר בצורה פרסיסטנטית וחלקה לפייפ הבא בתור.
ספציפית נסו לבצע את הפעולה הבאה
tail -f file | grep -i string > stdoutfile
יכול להיות שחלק מהשורות יגיעו ואולי אף לא אחת מהן, זה קורה מכיוון שהגרפ לא מקבל בכלל אינפוט (שנשאר בבאפר של הטייל כי היא לא נסגרת)
מה שאפשר לעשות במקום להתחיל לגזור קבצים ולגרפ אותם אחד אחד לפי הזמנים של הבדיקה הוא להוסיף את הדגל –line-buffered לגרפ. והנה קסם, הכל עובד.

אני למדתי דבר חדש, מקווה שגם אתם :)

נ.ב. אתם צפויים לראות התנהגות כזאת גם אם תנסו להעביר שני פייפים של גרפ.
הטייל בצורה גורפת יוצר באפר, גם ללא התיעול של STDOUT.

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

cp www.domain.com.key passphrase.www.domain.com.key
openssl rsa -in passphrase.www.domain.com.key -out www.domain.com.key

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

© 2012 אבוטבול Suffusion theme by Sayontan Sinha