Sen, tam bilgisayarı kapatırken çalmaya başlayan, özlemle beklenen şarkılar gibisin... Bilgisayarı kapatmaz ve o şarkıyı dinlersin... Ardından yatmaya gidersin ama uyku tutmaz, sabaha kadar o şarkıyı mırıldanırsın... Farketmediğin bir anda uykuya dalarsın ama rüyanda o şarkıyı söylemeye devam edersin... Sabah uyandığında bile o şarkı hala dilinin ucundadır... İşte sen o şarkılar gibisin... Her günü senle bitirip, ertesi güne senle başlamak istersin...İstesende...İstemesende...
Bu yazıda sizlere bir çakalın yedekleme mekanizmasından bahsedeceğim. Öncelikle şunu belirtmem gerekiyor ki işlemlerin nasıl yapılacağına dair fazla detay vermeyeceğim. Sadece yüzeysel olarak bahsedeceğim. Diğer tüm detaylar zaten yüzlerce sitede var. Her detaya Google ile arayarak ulaşabilirsiniz veya bu yazıya yorum yapabilirsiniz ama doğru cavabı almanız biraz zaman alabilir.
Sahip olduklarımız :
Her hangibir Linux sunucu ( host,vps... )
Bir google (gmail) hesabı ( veya başka bir sunucuda barındırılan e-posta hesabı )
İşlem Basamakları :
Veritabanımızı okumamız için bir kullanıcı açalım ve sadece okuma yetkisi verelim
Ev (/home/mopened) dizininizin altında "dbbackup" isminde bir klasör oluşturuyoruz.
Bu oluşturduğumuz dizine giriyoruz ve "dbbackup.sh" isminde bir dosya oluşturuyoruz.
"dbbackup.sh" isimli dosyanın yetkilerini "755" olacak şekilde ayarlıyoruz.
"dbbackup.sh" isimli dosyanın içeriğini aşağıdaki gibi yapıyoruz : "/home/mopened" yazan yerleri kendi hesabınızın ev (home) yolu ile değiştirmeyi unutmuyoruz.
#!/bin/bash
YYYYMMDD=`date +%Y%m%d` # veya kendi sunucumuzda son bir haftaya ait günlük yedekleri saklamak istiyorsak şöyle yazabiliriz `date +%w%a`
rm -rf /home/mopened/dbbackup/$YYYYMMDD.sql.gz
# mopened_ReadOnlyUser yazan yere veritabanı kullanıcısının adını yazıyoruz
# 123456789 yazan yere veritabanı kullanıcısının şifresini yazıyoruz, p harfine dikkat lütfen, aynen aşağıdaki örnekte olduğu gibi olmalı
# mopened_DBName yazan yere veritabanının adını yazıyoruz
mysqldump -h localhost -u mopened_ReadOnlyUser -p123456789 mopened_DBName | gzip > /home/mopened/dbbackup/$YYYYMMDD.sql.gz
#requires: basename,date,md5sum,sed,sendmail,uuencode
function fappend {
echo "$2">>$1;
}
# Aşağıdaki bloktaki yerleri kendimize göre değiştiriyoruz
TOEMAIL="posta@alanadiniz.com"; # Yedeğin gönderileceği e-posta adresini buraya yazıyoruz
FREMAIL="crondaemon@alanadiniz.com"; # Yedeği gönderiyormuş gibi yapan e-posta adresini buraya yazıyoruz:), Gmaildeki filtreleme olayı için bu adresi kullanacağız. Mümkünse sadece bu işlem için kullanacaağımız bir adres olsun. Gerçekte bu adresin ulaşılabilir olması şart değildir. Yani böyle bir mail hesabınızın olması gerekmiyor.
SUBJECT="MOPENED.COM - Günlük Yedek - $YYYYMMDD"; # E-Postanın konusunu buraya yazıyoruz
MSGBODY="Merhaba Çakal:), Ekteki dosyayı sakla, yoksa üzülürsün."; # E-postanın içeriğinide buraya yazıyoruz
ATTACHMENT="/home/mopened/dbbackup/$YYYYMMDD.sql.gz";
# Değiştirebileceğimiz blok bitti
# Bu bloktakileri değiştirmeye gerek yok
MIMETYPE="application/x-compressed"
TMP="/tmp/tmpfil_123"$RANDOM;
BOUNDARY=`date +%s|md5sum`
BOUNDARY=${BOUNDARY:0:32}
FILENAME=`basename $ATTACHMENT`
rm -rf $TMP;
cat $ATTACHMENT|uuencode --base64 $FILENAME>$TMP;
sed -i -e '1,1d' -e '$d' $TMP;#removes first & last lines from $TMP
DATA=`cat $TMP`
rm -rf $TMP;
fappend $TMP "From: $FREMAIL";
fappend $TMP "To: $TOEMAIL";
fappend $TMP "Reply-To: $FREMAIL";
fappend $TMP "Subject: $SUBJECT";
fappend $TMP "Content-Type: multipart/mixed; boundary=\""$BOUNDARY"\"";
fappend $TMP "";
fappend $TMP "This is a MIME formatted message. If you see this text it means that your";
fappend $TMP "email software does not support MIME formatted messages.";
fappend $TMP "";
fappend $TMP "--$BOUNDARY";
fappend $TMP "Content-Type: text/plain; charset=UTF-8; format=flowed";
fappend $TMP "Content-Transfer-Encoding: 7bit";
fappend $TMP "Content-Disposition: inline";
fappend $TMP "";
fappend $TMP "$MSGBODY";
fappend $TMP "";
fappend $TMP "";
fappend $TMP "--$BOUNDARY";
fappend $TMP "Content-Type: $MIMETYPE; name=\"$FILENAME\"";
fappend $TMP "Content-Transfer-Encoding: base64";
fappend $TMP "Content-Disposition: attachment; filename=\"$FILENAME\";";
fappend $TMP "";
fappend $TMP "$DATA";
fappend $TMP "";
fappend $TMP "";
fappend $TMP "--$BOUNDARY--";
fappend $TMP "";
fappend $TMP "";
#cat $TMP>/home/mopened/dbbackup/mailcontent.txt; # Satırın başındaki # `i silersek mail içeriğini bu dosyaya yazdırabiliriz
cat $TMP|/usr/sbin/sendmail -t>/home/mopened/dbbackup/output.txt; # Oluşabilecek gönderim hatalarını bu dosyaya yazdırıyoruz
rm $TMP;
# Değiştirmemize gerek olmayan blok bitti
rm -rf /home/mopened/dbbackup/$YYYYMMDD.sql.gz # Oluşturduğumuz yedek dosyasını sunucumuzdan siliyoruz, Eğer kendi sunucumuzda son bir haftaya ait günlük yedekleri saklamak istiyorsak bu satırı silebiliriz veya başına # koyabiliriz
Sunucumuzda son olarak aşağıdaki tablodaki değerlere göre bir zamanlanmış görev oluşturuyoruz. Tabi istekleriniz doğrultusunda değiştirebilirsiniz.
Her gün gece saat 3`te çalışması ve bize herhangibir bildirim yollamaması için
Minute
Hour
Day
Month
Weekday
Command
0
3
*
*
*
/home/mopened/dbbackup/dbbackup.sh >/dev/null
Her gün gece saat 3`te çalışması ve bize işleme dair detayları yollaması için ise şöyle olması gerekiyor. Bunun çalışması için mail adresimizi "Zamanlanmış Görev e-posta adresi" (Cron Email) alanına girmemiz gerekiyor. Bu alan genel "Zamanlanmış Görev" (Cron Jobs) ayarları altındadır.
Minute
Hour
Day
Month
Weekday
Command
0
3
*
*
*
/home/mopened/dbbackup/dbbackup.sh
Şimdi Gmail`i açıyoruz ve "Yedekler" isimli bir etiket oluşturuyoruz.
Ardından Gmail`de bir filtre oluşturuyoruz, detayları ise şöyle :
Fitre Detayları :
Gönderen = crondaemon@alanadiniz.com
İşlem Detayları :
Gelen Kutusunu Atla
Okundu Olarak İşaretle
Etiket Uygula "Yedekler"
Sil ( Eğer bize son 1 ay içindeki günlük yedekler yeter diyorsak bunu seçiyoruz, Gmail bu yedekleri bizim için Çöp Kutusunda saklayacaktır:) )
Her zaman önemli e-postalara ekle
Her şeyin doğru bir şekidle çalıştığını anlamak için Zamanlanmış Görevin (Cron Job) çalışmasını bekliyoruz veya Zamanlanmış Görevde (Cron Job) ufak bir zaman düzeltmesi yapıyoruz:)
Şimdi bütün işlemler bitti. Artık veritabanımızın günlük yedeklerini alıyoruz. Hemde masrafsız ve kapasite düşünmeye gerek kalmayacak şekilde. Ama unutmayınız veritabanındaki her şey artık yazdığınız mail adresine gidiyor olacak. Bu yüzden güvenliğini arttırmak iyi olacaktır. Google`ın 2 adımlı doğrulama yönetmini kullanmanızı tavsiye ederim. Aryıca belirtmek isterim ki anlayacağınız üzere sadece veritabanının yedeğini aldık. Dosyalar sürekli değişmediği için zaman zaman manuel olarak yedekleri alınabilir. Tabi eğer isterseniz yine aynı yöntemle bu işlemide gerçekleştirebilirsiniz ama dosyaların boyutuna bağlı olarak sunucuya çok fazla yük bindirme olasığı var. Ayrıca her gün yüzlerce mb veriyi mail olarak atmak çokta mantıklı değil sanırım. Bunun için başka bir sunucunuza ftp ile transfer etmeniz daha uygun görülebilir.
Her yiğidin yoğurt yiyişi farklıdır. İsteklerine, elindekilere ve düşüncelerine göre yöntemleride değişir. Yoğurt yemeyen birisi olarak benim yöntemim budur:). Şuanki durumum için en ideal çözüm bu sanırım.
Hamsi Singer Amarok 2 için kopete uyumlu "Ne Dinliyorum" Eklentisidir. Hamsi Singer KDE4 için geliştirildi. V0.5 sürümünden itibaren "Şimdi Ne Mi Söylüyor?" isimli eklentimide bu projeye dahil ettim.Böylece tam teçhizatlı bir araca dönüştürüldü. İngilizce dil desteğide sunulmaktadır. 0.9.01 sürümü ilede Fransızca dil desteğe kavuştu. Fransızca çevirisini Jeremy Meunier isimli bir arkadaşımız yaptı. Kendisine tekrar teşekkür ederim. Hamsi Singer projesinin eski adı "Şimdi Ne Mi DinliyoruM?"`dur."Şimdi Ne Mi DinliyoruM?"`in son sürümü V0.8.1`dir.Projenin adı V0.8.50`de değiştirilmiştir.
Mevcut Özellikler :
Seçenekler penceresini kullanarak durum iletinizi istediğiniz gibi düzenleyebilirsiniz.
Varsayılan yenileme süresi zaman bilgisi için 15 saniye ve şarkı sözü için 3 saniyedir ama isteğinize göre ayarlayabilirsiniz.
Hamsi Cover amarok 2.x için oluşturulmuş bir eklentidir.Dinlediğiniz şarkının albüm kapağını alır ve şarkının bulunduğu dizinin simgesi haline getirir.Bu işlemi her parça değişiminde veya kendiniz istediğiniz zaman Amarok`ta Araçlar menüsü altındaki "Parçanın Bulunduğu Dizine Simge Oluştur" isimli butona tıklayarak da yapabilirsiniz.
Hamsi Cover;V0.2 sürümünden itibaren çok dil destekli olarak yayımlanacaktır.V0.2 ile eklenen bu özellik ilerki sürümlerdede devam ettirilecektir.V0.6 sürümü ilede Fransızca dil desteğe kavuştu.Fransızca çevirisini Paul Forget isimli bir arkadaşımız yaptı.0.8.70 sürümünde Çekçe dil destediğine kavuştu.Çekçe çevirisini Tomáš Hejátko isimli bir arkadaşımız yaptı.Herkese tekrar teşekkürlerimi sunarım. Hamsi Cover projesinin eski adı "Dizin SimgeM"`dir."Dizin SimgeM"`in son sürümü V0.8.2`dir.Projenin adı V0.8.50`de değiştirilmiştir.
Mevut Özellikleri:
Şarkı değiştikten istediğiniz kadar saniye sonra otomatik olarak dizine simge oluşturabilirsiniz
Simge ismini istediğiniz gibi otomatik olarak oluşturur ve hatalı karakterleri düzeltir
Albüm kapağını isterseniz ilgili dizine kopyalayabileceğiniz gibi sadece linklendirme yoluylada simge haline getirebilirsiniz
Oluşturulacak kapakların dosya yetkilerini, sahibi ve grubunu ayarlayabilirsiniz
Evet, biliyorum çok şey istedim, Hakkım olmayan bir çok şey, Haketmediğim bir çok şey, Kimsenin hayal bile edemediği, Kimilerinin hayalini bile kurmaktan korktuğu, Kimilerine göre hayalini bile kurmaya değmez...
Evet, biliyorum çok şey istedim, Bazen aptalca, Bazen hayalperestçe, Bazen imkansız, Bazen korkutucu, Bazen düşünmesi bile kötü olan, Bazende sadece filmlerde olabilecek..
Evet, biliyorum çok şey istedim, Çocukluk hayalimin yerini verdiğim, Geleceğimi ona göre planladığım, Yedeğinde bir istek bulundurmadığım, Er yada geç olacakmış gibi düşündüğüm, Her fırsatta onun için çabaladığım, Hiç istemesemde aklımdan çıkaramadığım, Bütün dualarımın olmazsa olmazı...
Bu projenin adı Hamsi Manager olarak değiştirilmiştir. Detaylar için lütfen Hamsi Manager bağlantısını ziyaret ediniz.
OrganizasyonizM Başta Müzik dosyalarınız olmak üzere tüm dosya ve dizinlerinizi organize etmeniz, isimlendirmeniz, temizlemeniz, düzenlemeniz ve değiştirmeniz için geliştirilen bir uygulamadır.İlk başlarda kişisel işlerde kullanmak için düşünülmüştü.Daha sonra bunun bir ihtiyaç olabileceği görüldü ve herkesin kullanabileceği bir yapıya kavuşturuldu.OrganizasyonizM en baştan beri tamamen açık kaynak kodlu kütüphaneler ile geliştirilmiştir.OrganizasyonizM tamamen açık kaynak kodlu olup GPLV3 ile lisanslanmıştır. İstediğiniz gibi katkıda bulunup,istediğiniz gibi dağıtabilirsiniz.OrganizasyonizM V0.7 sürümüyle birlikte türkçe ve ingilizce olmak üzere çok dilli bir yapıya kavuştu.V0.8.7 sürümüyle de brezilya portekizcesi diline sahip oldu.
Bu projenin adı Hamsi Cover olarak değiştirilmiştir. Detaylar için
lütfen Hamsi Cover bağlantısını
ziyaret ediniz.
Dizin SimgeM (Directory Cover) amarok 2.x için oluşturulmuş bir eklentidir.Dinlediğiniz şarkının albüm kapağını alır ve şarkının bulunduğu dizinin simgesi haline getirir.Bu işlemi her parça değişiminde veya kendiniz istediğiniz zaman Amarok`ta Araçlar menüsü altındaki "Parçanın Bulunduğu Dizine Simge Oluştur" isimli butona tıklayarak da yapabilirsiniz.
Bu projenin adı Hamsi Singer olarak değiştirilmiştir. Detaylar için
lütfen Hamsi Singer bağlantısını
ziyaret ediniz.
Amarok 2 için kopete uyumlu "Ne Dinliyorum" Eklentisi. Şimdi Ne Mi Dinliyorum? KDE4 için geliştirildi.İngilizce dil desteğide sunulmaktadır.V0.5 sürümünden itibaren "Şimdi Ne Mi Söylüyor?" isimli eklentimide bu projeye dahil ettim.Böylece tam teçhizatlı bir araca dönüştürüldü.