İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Otomatik Apache Restart veya Dosya adı değiştirme

aoguney

0
İyinet Üyesi
Katılım
6 Ekim 2005
Mesajlar
0
Reaction score
0
Arkadaşlar şöyle bir sistem istiyorum,

load 18'in üzerine çıktığında otomatik olarak apache restart yapabilmek veya

load 18'in üstüne çıktığında otomatik olarak xxx klasorunu xxx2 yapılmasını, tekrar 10'un altına düştüğünde ise yine oto. olarak xxx olarak adının değiştirilmesini istiyorum.

Acaba bu istediklerim mümkün mü? Yardımcı olursanız sevinirim
 

Efsane

0
İyinet Üyesi
Katılım
12 Ekim 2007
Mesajlar
1,553
Reaction score
1
Konum
bilecen (:
Load olarak bilmiyorum ama crontab ile 10-20-30 vs vs dk da restart attırabilirsin..
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Arkadaşlar şöyle bir sistem istiyorum,

load 18'in üzerine çıktığında otomatik olarak apache restart yapabilmek veya

load 18'in üstüne çıktığında otomatik olarak xxx klasorunu xxx2 yapılmasını, tekrar 10'un altına düştüğünde ise yine oto. olarak xxx olarak adının değiştirilmesini istiyorum.

Acaba bu istediklerim mümkün mü? Yardımcı olursanız sevinirim

Elbette mumkun. Linux mu kullaniyorsunuz? klasor adlari nelerdir?
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Bu kodu 1 sene kadar önce yazmıştım, sizin için düzenledim umarım işinize yarar.

word ve word2 dizinlerinin tam path ini girmelisiniz, ben /word ve /word2 dedim, eğer dizin /usr/html/word ise siz o şekilde editleyiniz.

apacheyi_koru.sh
Kod:
load=`/usr/bin/uptime|/bin/awk -F"user" '{print $2}'|/bin/awk -F, '{print $2}'|/bin/awk '{print $3}'`
load=`/bin/echo "$load * 100" |/usr/bin/bc|/bin/awk -F. '{print $1}'`
if [[ $load -gt 1800 ]]
then
echo "Load:" $load ". httpd yi durdur dosya adini degistir!"
/sbin/service httpd stop
/bin/mv /word /word2
fi
if [[ $load -lt 1000 ]]
then
num=`/sbin/service httpd status|/bin/grep running|/usr/bin/wc -l|/bin/awk '{print $1}'`
if [ $num -lt 1 ]
then
echo "Load:" $load ". httpd yi baslat, dosya adini eski haline getir!"
/bin/mv /word2 /word
/sbin/service httpd start
fi
fi

Dosyayi çalışır hale getirelim:
Kod:
chmod 755 apacheyi_koru.sh

Dosyayı crontab içine ekleyelim:
Kod:
crontab -e
bu satırı ekleyin (scriptin /root altında olduğunu varsayarak):
Kod:
* * * * * /root/apacheyi_koru.sh > /dev/lisanssız 2>&1
Bu ayar her dakika çalıştırmak içindir.

3dk da bir çalıştırmak için
Kod:
*/3 * * * * /root/apacheyi_koru.sh > /dev/lisanssız 2>&1
 

aoguney

0
İyinet Üyesi
Katılım
6 Ekim 2005
Mesajlar
0
Reaction score
0
Çok teşekkürler cidden. Çok işime yarayacak...

Ufak bir sorum daha var. Burda bahsi geçen load, load average mı acaba? Load average diye belirtmeyi unutmuşum.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Çok teşekkürler cidden. Çok işime yarayacak...

Ufak bir sorum daha var. Burda bahsi geçen load, load average mı acaba? Load average diye belirtmeyi unutmuşum.

Burda gecen load serverin o andaki load u.
Doğru olan da anlık load u kullanmaktır.
Kod:
uptime
yazdığınızda 3 load çıkar ekrana, bu script ilkini kullanır.
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
Çok güzel bir bilgi teşekkür ederiz

Sadece load 20 30 dayken apache yi durdurup düşdükden sonra açabilirmiyiz otomatikman
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Çok güzel bir bilgi teşekkür ederiz

Sadece load 20 30 dayken apache yi durdurup düşdükden sonra açabilirmiyiz otomatikman

Evet onu da şu şekilde yapabilirsiniz:
Burdaki 2000 (load = 20) demektir.
İstediğiniz load değerini 100 ile çarpıp aşağıda değiştirebilirsiniz.
Bu script load 20 ye çıktığında apache yi kapatır.
Load 3 e düştüğünde geri açar.
Kod:
load=`/usr/bin/uptime|/bin/awk -F"user" '{print $2}'|/bin/awk -F, '{print $2}'|/bin/awk '{print $3}'`
load=`/bin/echo "$load * 100" |/usr/bin/bc|/bin/awk -F. '{print $1}'`
if [[ $load -gt 2000 ]]
then
echo "Load:" $load ". apache yi durdur!"
/sbin/service httpd stop
fi
if [[ $load -lt 300 ]]
then
num=`/sbin/service httpd status|/bin/grep running|/usr/bin/wc -l|/bin/awk '{print $1}'`
if [ $num -lt 1 ]
then
echo "Load:" $load ". apache yi baslat!"
/sbin/service httpd start
fi
fi
 

Senol

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Reaction score
1
Konum
Bursa
bu şekilde yapacağınıza apache ve mysql unuzu optimize ettirseniz olmazmı ?
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
bu şekilde yapacağınıza apache ve mysql unuzu optimize ettirseniz olmazmı ?

Saldırı geldiğinde bazen Net başında olmayabiliyoruz bu şekilde bi nevi apache nin Down olmasını engelleyebiliriz.

Optimize etmeyi bilmiyoruz tam olarak o yüzden :)
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
Sanırım normal şartlarda load bu değerlere çıkmaz.
Load un 20-30 değerlerine hatta 200 lere ulaşmasının genel sebebi yapılan saldırılardır.

Yardımların ve bilgilerin için çok saol iyinet .

Bazen Ünideyken sunucuya saldırı geliyor ve PC başına geçemiyorum.

Apache down oluncada mecbur kapalı kalıyor akşam gelene kadar

Bu .sh bi nevi apache nin down olmasını engeller inşallah.

Daha önce

Kod:
*/20 * * * *root  service httpd restart

ve
Kod:
*/20 * * * * /sbin/service/ httpd restart

Komutlarını crontab da denedim fakat httpd yi otomatik olarak restart ettirmediler bu komutlar

Verdigin script benim sunucuda Load 20 olduğunda httpd yi durdurup Load düşünce açarmı emin degilim.

Çünkü yukarıda yazdıgım iki komutu ne yaptıysam otomatik olarak httpd yi restart ettirmemişti..
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
Yardımların ve bilgilerin için çok saol iyinet .

Bazen Ünideyken sunucuya saldırı geliyor ve PC başına geçemiyorum.

Apache down oluncada mecbur kapalı kalıyor akşam gelene kadar

Bu .sh bi nevi apache nin down olmasını engeller inşallah.

Daha önce

Kod:
*/20 * * * *root  service httpd restart
ve
Kod:
*/20 * * * * /sbin/service/ httpd restart
Komutlarını crontab da denedim fakat httpd yi otomatik olarak restart ettirmediler bu komutlar

Verdigin script benim sunucuda Load 20 olduğunda httpd yi durdurup Load düşünce açarmı emin degilim.

Çünkü yukarıda yazdıgım iki komutu ne yaptıysam otomatik olarak httpd yi restart ettirmemişti..

Onları crondan kaldır ve verdiğim scripti bir dosya.sh içine koyup crona koy, her dakka çalışşın zararı yok.
Bir dene bakalım, olmazsa sorunu bulur çözeriz :)
 

Senol

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Reaction score
1
Konum
Bursa
ben anlamadım şimdi saldırı alıp calışamayacak duruma sokulan server nasıl apache yi restart edecek ? :)

ayrıca rahat duran adama neden saldırı gelsin kendimi örnek göstereyim coksükür suana kadar hic saldırı almadım almam icinde sanırım sebeb yok
rahat duran adama neden saldırı gelsinki :)
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
ben anlamadım şimdi saldırı alıp calışamayacak duruma sokulan server nasıl apache yi restart edecek ? :)

ayrıca rahat duran adama neden saldırı gelsin kendimi örnek göstereyim coksükür suana kadar hic saldırı almadım almam icinde sanırım sebeb yok
rahat duran adama neden saldırı gelsinki :)

Müşteriler rahat durur mu durmaz mı bunu bilemez kimse. benden yana sorun yok.
Kod:
ben anlamadım şimdi saldırı alıp calışamayacak duruma sokulan server nasıl apache yi restart edecek ?

Cevabı :

@İyinet usta bu Scripti iletirken söylüyor bak Load 20 olunca apache durucak Düşene kadar açılmayacak bu sayede fazla Kasmadan durur apache.
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
Onları crondan kaldır ve verdiğim scripti bir dosya.sh içine koyup crona koy, her dakka çalışşın zararı yok.
Bir dene bakalım, olmazsa sorunu bulur çözeriz :)

Tamam usta
Her dakka çalışması için crontab 'a
Kod:
*/1 * * * * /root/apacheyi_koru.sh > /dev/lisanssız 2>&1
Bu şekilde ekledim çalışmazsa bildiricem sana ilginden dolayı teşekkür ederim.
 

iyinet

Root
Admin
Hosting Firması
Katılım
2 Eylül 2002
Mesajlar
5,028
Reaction score
66
Konum
Sakarya
ben anlamadım şimdi saldırı alıp calışamayacak duruma sokulan server nasıl apache yi restart edecek ? :)

TrDownload, saldırıların çoğu apache yi hedef alır. Apache kapalı olduğunda saldırılar serveri pek etkilemez.

Bunlara örnek vermek gerekirse SYN saldırıları, HTTP protokolunun bir boşluğunu kullanarak yapılan saldırlardır.

Makinada Apache, IIS gibi web serverlar HTTP protokolünü kullanırlar. Web server durunca SYN saldırıların da etkisi olmaz.

Aynı şekilde DDOS da web sayfaları hedef alır, DDSO aynı anda çok fazla (aynı anda binlerce) web sayfası açmaya çalışır ve serverınız sonunda bu isteklere dayanamaz ve pes eder, response veremez duruma gelir.

SYN ve DDOS türü saldırılar 1 makinanın Load unu 1 dk içinde 100 lere fırlatabilir.

Verdiğim script işte bu loadu dakika başı kontrol eder ve Load a aracı olan Apache yi kapatır.

Apache kapanınca Load hali ile yavaş yavaş 2-3 dk içinde tek rakamlı değerlere düşer.

Peki diyeceksiniz ki Apache kapalı ise bunun bana ne faydası var ki, sitelerim açılmadıktan sonra...

Haklısınız Apache kapalı olunca sayfalar açılmaz. Ama bu saldırıların makinayı kasmasını önler.

Makinada Mail serveriniz, DNS serveriniz vb... başka işleri yapan programlar da saldırıdan etkilenip dururlar. Ama Apache kapatılıp load düşünce bu programlar sorunsuz çalışmaya devam ederler.

Hem datacenter a durmadan makinamı reboot edin demekten de kurtulmuş olursunuz.

Umarım anlatabilmişimdir.
 

Senol

0
İyinet Üyesi
Onaylı Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Reaction score
1
Konum
Bursa
iyinet cok güzel anlattın bende senden böyle bir acıklama bekliyordum :)

peki windows server üzerinde böyle bişey yapabilirmiyiz örnek olarak cpu kullanımı %70 olunca IIS yi restart et.

şimdi iyinet bana soracak neden %50 değilde %70. cevabı şu windows serverlerde cpu kullanımı cok dalgalıdır %5 gibi bir rakamdan %60 70 lere birden fırlayabiliyor windowstaki cpu kullanımı
 

C0$kuN

0
İyinet Üyesi
Katılım
12 Haziran 2007
Mesajlar
168
Reaction score
0
İyinet usta

Bu script de if [[ $load -lt 300 ]] Load 3 e düşmüşse mi Apache yi calıştır diyor ?

eğer bu değilse apache kaça düşünce calış diyor bu script içinde
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst