Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

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

  • Konbuyu başlatan aoguney
  • Başlangıç tarihi
A

aoguney

Misafir
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
Onaylı Üye
Üye
Katılım
12 Ekim 2007
Mesajlar
1,553
Açılan Konu
53
Tepki puanı
1
Konum
bilecen (:
Load olarak bilmiyorum ama crontab ile 10-20-30 vs vs dk da restart attırabilirsin..
 

iyinet

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
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
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
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
 
A

aoguney

Misafir
Ç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
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
Ç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
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
Ç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
Onaylı Üye
Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Açılan Konu
128
Tepki puanı
6
Konum
Bursa
bu şekilde yapacağınıza apache ve mysql unuzu optimize ettirseniz olmazmı ?
 

iyinet

Root
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
bu şekilde yapacağınıza apache ve mysql unuzu optimize ettirseniz olmazmı ?

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.
 

C0$kuN

0
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
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
Onaylı Üye
Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Açılan Konu
128
Tepki puanı
6
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
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
Root
İyinet Ekibi
Onaylı Üye
Katılım
2 Eylül 2002
Mesajlar
5,034
Açılan Konu
485
Tepki puanı
75
Konum
SEO
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
Onaylı Üye
Üye
Katılım
25 Haziran 2005
Mesajlar
4,856
Açılan Konu
128
Tepki puanı
6
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
Onaylı Üye
Üye
Katılım
12 Haziran 2007
Mesajlar
168
Açılan Konu
25
Tepki puanı
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
 
Üst