הגיע הזמן עבור bekapinga שוב 🙂 אתמול הבנתי, שכחתי לעשות כל גיבויים כל הקבצים הם למעשה על 2 מכונה. דאם עדיין יש אפשרות לשמור על. כי המבחן המכשיר אינו צריך הרבה שחזור מערכת פלסטיק כך פניתי הישן שלי תסריט בהם קיימת פונקציה פרימיטיבית. בדרך כלל זה מכוער מאוד ופונקציונלי Lupsa הידוע שלו אומרים להיזהר רק 1 תרכיב בנפרד שהקוד הוא סטטי למדי עם חזרות אלה. Затова реших да го пренапиша, като този път не го надрасквма за 10 דקות. В новата си версия вече се подържат 10 стари backup файла. Което си една добра цифра.

#!/bin/bash

#path to tar command
TAR="$(which tar) cvzf"

function backup {

#path to beckup folder
cd $1

#remove oldest archive
rm -r *.10.tgz
sleep 3 #time for removing

#move old archives, we will save 10 old files
for i in {9..1}
do
let "n=$i+1"
mv "www.$i.tgz" "www.$n.tgz"
mv "mysql.$i.tgz" "mysql.$n.tgz"
mv "cron.$i.tgz" "cron.$n.tgz"
done

#and move the newest : )
mv www.tgz www.1.tgz
mv mysql.tgz mysql.1.tgz
mv cron.tgz cron.1.tgz

#path to first folder
$TAR www.tgz /var/www/
sleep 2
#path to second folder
$TAR mysql.tgz /var/lib/mysql/
sleep 2
}

#call backup function with folder path arg
backup /media/backup1
sleep 2
backup /media/backup2

#E0F

В общи линии нещата са ясни. Имам 2 монтирани дяла за бекъп в /media и в тях се наливат новите архиви като преди това се преименуват старите. Структурата на имената е очевидна и при ls команда ориентира е интуитивен.

משופר על ידי Zemanta

היום אני מדבר על צרותיה סביב שרת יחיד עם Suhosin תיקון וכיצד דביאן עסקת Sqeeze עם זה. עכשיו אנחנו מתחילים במרחק קטן. בעת התקנת php במערכת החבילות של דביאן (עבור אחרים יציבים אני לא יכול להגיד איך עדיין) עליך להתקין Suhosin mod אליו. היה לי בעיות עם כמה מערכת MAH מסגרת שנכתבה ב- PHP והחליט הקרדינל במקום לעשות באגים במערכת ומפתח דווח לראש לאבד תיקוני אבטחה ובכך לחסוך לעצמי את הטרחה. באופן כללי אני יכול לומר באומץ כי זה היה אחת ההחלטות הטפשות ביותר אי פעם לקחתי. בשעה מודול להסיר הראשון PHP5-האינטרנט מחדש Suhosin-בשרת ופוסט אופס – תיקון- a הוא עדיין טעון. לאחר מחקר קצר למצוא, כי החבילה היא הידור טרואה ישירות בקוד כלומר אין החרגה או הסרה אלא להדר מחדש את הקוד שוב ללא תיקון. לפתור אשר drapna והדר מחדש כדי חבילת deb. בוצע אמר מוקדם לעשות apt-get מקור PHP5 שלך מושך אותי קוד מקור זה, razpaketirva וכו. הנה הרעיון האידיאלי שלי להסיר את מקור החבילה להסיר את התיקון ולעבד אותו בחזרה את חבילת דביאן ועוד שתיים אחד אופטימיזציות קטן הידור. אמר גמר – לחסל תיקון מיותר של debian / טלאים / suhosin.patch הוצאתי ממנו לשחק ב debian / טלאים / סדרה. עד כה הכל ברור וללא בעיות. לאחר מכן הפעל לקמפל חבילה debuild וכפי שציפיתי נשפתי אוסף בגלל כותרות חסרות. באופן טבעי יהיה שום מחסור – אני עדיין עם התקנת רשת דביאן. טיפשות תיקון מהיר לרוץ שוב הידור, בשלב מסוים להתעלף רק שוב, כי עם שגיאה מוזרה ב Zend / zend_stream.h או .c לא זוכר בדיוק (אם אני יכול להתמודד אחר כך לבדוק בדיוק איזה קובץ וקו הרעם). אחרי להטיל ספק מה קורה ולמה לעזאזל יכול לטרטר של ליבת Zend – במקום שאמור לטרטר מכל סיבה שהיא וכן מחקר קצת יותר זמן למצוא כי בעיה זו היא נדירה יחסית ולא הרבה סימנים לכך. אני חושד שאחד הטלאים במקור לא בסדר אבל אין לי עצבים כדי לבדוק את זה. המממ מוזר למוזר במיוחד. כמעט החלטתי ללקט php טהור אבל החלטתי לנסות מראות dotdeb יש לראות מה קורה. הידור יש מת בגלל כמה התמכרויות מוזרות אבל נחסכה הבעיות בגוף הראשי. שבתורה הוא מובן שעשה להם 30-40 תיקונים שהיו בחבילה יציבה. אחרי כמה ניסיונות לא מוצלחים ארוכים התעייפתי וכיבה חבילת הווניל שלי ולעבד איתה כמעט אפשרויות debian-סקי עם הרעיון לשכתב המערכת הנוכחית שלי והתקן חבילות חדשות ממזין יכול להתנהג חבילה מותקנת מהמאגר (כנראה בדיל עוד לא פתרון סביר). כפי שציפיתי ללא כל התקנת טלאים הלכה חלק. זו התוצאה של קובץ config.nice שלי:

#! /bin/sh
#
# Created by configure

CFLAGS='-g -O2 -fPIC -Wall -fsigned-char -fno-strict-aliasing   -gstabs' \
CXXFLAGS='-g -O2' \
'./configure' \
'--with-apxs2=/usr/bin/apxs2' \
'--prefix=/usr/local/php5' \
'--disable-cgi' \
'--with-config-file-path=/etc/php5/apache2' \
'--with-config-file-scan-dir=/etc/php5/apache2/conf.d' \
'--build=x86_64-linux-gnu' \
'--host=x86_64-linux-gnu' \
'--sysconfdir=/etc' \
'--localstatedir=/var' \
'--mandir=/usr/share/man' \
'--disable-debug' \
'--with-regex=php' \
'--disable-rpath' \
'--disable-static' \
'--with-pic' \
'--with-layout=GNU' \
'--with-pear=/usr/share/php' \
'--enable-calendar' \
'--enable-fileinfo' \
'--enable-hash' \
'--enable-json' \
'--enable-sysvsem' \
'--enable-sysvshm' \
'--enable-sysvmsg' \
'--enable-bcmath' \
'--with-bz2' \
'--enable-ctype' \
'--without-gdbm' \
'--with-iconv' \
'--enable-exif' \
'--enable-ftp' \
'--enable-dbase' \
'--with-gettext' \
'--enable-mbstring' \
'--with-onig=/usr' \
'--with-pcre-regex' \
'--with-mysql=shared,mysqlnd' \
'--with-mysql-sock=/var/run/mysqld/mysqld.sock' \
'--with-mysqli=shared,mysqlnd' \
'--enable-pdo=shared' \
'--with-pdo-mysql=shared,mysqlnd' \
'--with-pdo-odbc=shared,unixODBC,/usr' \
'--with-pdo-pgsql=shared,/usr/bin/pg_config' \
'--with-pdo-sqlite=shared,/usr' \
'--with-pdo-dblib=shared,/usr' \
'--enable-phar' \
'--enable-shmop' \
'--enable-sockets' \
'--enable-dom' \
'--enable-wddx' \
'--enable-tokenizer' \
'--with-zlib' \
'--with-kerberos=/usr' \
'--with-openssl=/usr' \
'--enable-soap' \
'--enable-zip' \
'--with-mhash=yes' \
'--with-exec-dir=/usr/lib/php5/libexec' \
'--with-system-tzdata' \
'--without-mm' \
'--with-readline=/usr' \
'--without-sybase-ct' \
'--without-sqlite' \
'--without-sqlite3' \
'--without-mssql' \
'--enable-pcntl' \
'--enable-inline-optimization' \
"[email protected]"

תצורה זו היא דומה לזה של האוסף dotdeb. Като основаното и най важно е prefix опцията където ще се разполагат файловете с библиотеките на php. Него както и другите пъти ги коригирайте според вашата система така че да не се усети компилацията с промяна на пътищата.

משופר על ידי Zemanta