יום שני, נובמבר 16, 2009

גיבוי אוטומטי בעזרת udev rule

הבעיה:
גיבוי מרוחק חצי אוטומטי ונח.
האמצעים:
* 2 כוננים חיצוניים 1.5TB בחיבור firewire 400
* שרת לינוקס
* אוטו
* בית מרוחק ממקום העבודה
השיטה:
הגדרת udev rule שמזהה את חיבור הכונן החיצוני ומעתיק אליו מידע. בסיום ההעתקה, שליחת מייל על מנת להזכיר לאדם אחראי לקחת את הכונן הביתה.

udev rule:

KERNEL=="sd?1", ATTRS{model}=="FreeAgent XTreme", ACTION=="add", SYMLINK+="offsite", RUN+="/backup/offsite.sh"


את הכלל צריך להעתיק לקובץ ולשים אותו בספרייה /etc/udev/rules.d עם סיומת rules - למשל
/etc/udev/rules.d/backup.rules

הסבר לכלל:
* נוצר התקן שהשם שלו הוא כמו sd?1 למשל sdc1 וגם
* להתקן או אחד מהאבות שלו יש תכונה ATTRS{model} בשם "FreeAgent XTreme" וגם
* הפעולה שעושה ההתקן היא הוספה
אם כל התנאים הללו נכונים, אז ניצור קישור לקובץ ההתקן בשם /dev/offsite כדי שנוכל להשתמש בשם הזה בתסריט גיבוי שלנו ונריץ את תסריט הגיבוי.

את התכונות של ההתקן והאבות שלו מקבלים על ידי הרצת הפקודה udevinfo -a -p /sys/block/sdc1
פרטים נוספים אפשר למצוא כאן.

תסריט גיבוי:

#!/bin/sh

DEV_NAME=/dev/offsite
MOUNT_NAME=/mnt/offsite
DIR_TO_BACKUP=/backup
MAILTO=foo@bar

err()
{
echo "$1" | mail -s "offsite backup error" $MAILTO
exit
}

mount -t xfs $DEV_NAME $MOUNT_NAME || err "Couldn't mount the backup harddrive with error $?"
rsync -az $DIR_TO_BACKUP $MOUNT_NAME || err "rsync command failed with error $?"
umount $MOUNT_NAME || err "Couldn't unmount the backup harddrive with error $?"

echo "backup succeded" | mail -s "offsite backup - take me home!" $MAILTO

2 תגובות:

אנונימי אמר/ה...

[url=http://www.freewebs.com/atorvastatin]atorvastatin 20 mg tablet
[/url]buy lipitor tablets
lipitor cost canada
cost for lipitor
cost for atorvastatin
Atorvastatin buy

אנונימי אמר/ה...

[url=http://amoxicilline.webs.com/]acheter Framox en ligne
[/url][url=http://acheter-amoxicilline.webs.com/]agram occasion
[/url] amoxicilline eg
amoxicilline oroken
amoxicilline ultra levure