servis durumunu kontrol eden betik

Örnek olarak proftpd nin çalışıp çalışmadığını kontrol eden, çalışmıyorsa mail atmasını sağlayan ve sonuçlarını log dosyasında tutan betik aşağıdaki gibi olabilir.

#!/bin/bash
#29.07.09 Cem DOGAN
#kontrol.sh
program='proftpd'
 date -d@1234567890 >> /var/log/kontrol.log
if ps ax | grep -v grep | grep $program > /dev/null
 then
 echo "$program calisiyor" >> /var/log/kontrol.log
 else
 echo "$program calismiyor" >> /var/log/kontrol.log
 mail -s "$program is down" user_name@email_address.com
 fi

ssh ile dosya kopyalama

dosya göndermek için ;

  • ssh uzaktaki_makina cat <yerel_dosya – “>” uzak_dosya
  • cat yerel_dosya | ssh uzaktaki_makina cat “>” uzak_dosya

dosya almak için ;

  • ssh uzaktaki_makina “cat /home/dosya.tar.gz” > dosya.tar.gz
  • ssh uzaktaki_makina cat “<” uzak_dosya >yerel_dosya

dosyaları karşılaştırmak için ;

# Uzaktaki makinanın işlemcisini kullanarak:

  • ssh uzaktaki_makina cat uzak_dosya | diff – yerel_dosya

# Yerel makinanın işlemcisini kullanarak:

  • ssh uzaktaki_makina cat <yerel_dosya “|” diff – uzak_dosya

ilerleme durumunu gösterebilen rcp nin geliştirilmiş hali scp komutuyla kopyalama işlemi;

# bulunduğun klasördeki sh dosyalarını uzaktaki makinadaki home klasörüne kopyalamak için:

  • scp *.sh uzaktaki_makina:

# pdf dosyalarını uzaktaki makinada farklı bir klasöre kopyalamak için:

  • scp *.pdf uzaktaki_makina:/home/cemd/altklasor

# uzaktaki makinadaki sh dosyalarını yerel makinaya almak için:

  • scp uzaktaki_makina:*.sh .

# scp, sftp, ssh ve sshd aynı pakettedir. winscp de windows tabanlı makinelerde kullanılabilir.
[ Gürhan’a teşekkürler]

klasor boyutlari

Kullanıcıların posta kutusunun boyutunu listelemek için (Maildir) kullanılabilir;

du -h /home/kullanicilar | awk ‘$1 ~/M/ {sub(/M/, “Mb”); print $0}’ | awk ‘$2 ~/.Maildir$/{print $0}’|sort -n

20Mb den büyük dosyaları listelemek için

find / -type f -size +20000k -exec ls -lh {} ; | awk ‘{ print $9 “: ” $5 }’

Klasörde dosya isimlerindeki boşlukları ve büyük harfleri düzeltmek için;

#!/bin/bash
for f in *; do
file=$(echo $f | tr A-Z a-z | tr ‘ ‘ _)
[ ! -f $file ] && mv “$f” $file
done

vim notlarım

* Değiştirme;

J             iki satırı aralarında boşluk bırakara birleştirir.
gJ             iki satırı aralarında boşluk bırakmadan birleştirir.
:5,9j         5. ve 9. satırlar arasını boşluk bırakarak birleştirir.
>>             tab işlemi yapar.
3>>         3 satıra tab işlemi yapar.
<<             ters yöne tab işlemi yapar.
vEU         bulunduğu yerden kelime sonuna kadar büyük harfe çevirir.
v$U         bulunduğu yerden satır sonuna kadar büyük harfe çevirir.
vEu         bulunduğu yerden kelime sonuna kadar küçük harfe çevirir.
v$U         bulunduğu yerden satır sonuna kadar küçük harfe çevirir.

* Kopyalama ve Yapıştırma;

yn             n kadar karakteri kopyalar (y=yank).
yw             kelimeyi kopyalar.
yy             satırı kopyalar.
Y             satırı kopyalar.
nyy         n kadar satırı kopyalar.
y$             satır sonuna kadar kopyalar.
y)             cümle sonuna kadar kopyalar.

p             imlecin sağına yapıştırır.
P             imlecin soluna yapıştırır.

* Silme;

x             imlecin bulunduğu karakteri siler.
dd             satırı siler.
d^             satırın başına kadar siler.
d$             satırın sonuna kadar siler.
dw             bulunduğu kelimeyi siler.
d3w         3 kelime siler.
3dd         3 satır siler.
d/cem         cem kelimesini bulana kadar siler.
dfa         bulunduğu yerden a karakterine kadar siler.

u             silme işlemini iptal eder.
U             en son değişikliği geri alır.

* Ekleme;

i             imlecin solundan ekleme yapar.
I             satır başından ekleme yapar.
5if     5 tane f karakteri ekler.
a             imlecin sağından ekleme yapar.
A             satırın sonundan ekleme yapar.
o             sonraki satırbaşından ekleme yapar.
O             önceki satırbaşından ekleme yapar.

* İmleç hareketleri;

h             imleci sola ilerletir.
j             imleci aşağı ilerletir.
k             imleci yukarı ilerletir.
l             imleci sağa ilerletir.
0             imleci satır başına götürür.
$             imleci satır sonuna götürür.
w             imleci bir sonraki kelimeye götürür.
3w             imleci 3 kelime sonrasına götürür.
b             imleci bir önceki kelimeye götürür.
e             imleci kelimenin sonuna götürür.
G             imleci dosyanın son satırına götürür.
f             imlecin sonrasındaki karakterlerde arama yapar.
)             imleci sonraki cümleye götürür.
}           imleci sonraki paragrafa götürür.
(            imleci önceki cümleye götürür.
{            imleci önceki paragrafa götürür.
z                      bulunduğu satırı ekranın en üstüne gelecek şekilde kaydırır.
z.             bulunduğu satırı ekranın ortasına gelecek şekilde kaydırır.
z-             bulunduğu satırı ekranın en altına gelecek şekilde kaydırır.

* Arama ve Değişiklik Yapma;

/kelime             ileriye doğru kelime araması yapar.
?word     geriye doğru kelime araması yapar.
n         ileriye arama sonucu bulunan diğer kelimeye geçiş yapar.
N         geriye arama sonucu bulunan diğer kelimeye geçiş yapar.
*         ileriye arama sonucu bulunan aynı hizadaki diğer kelimeye geçiş yapar.
#         geriye arama sonucu bulunan aynı hizadaki diğer kelimeye geçiş yapar.

:s/eski/yeni/     eski ve yeni şeklinde belirtilen ilk eşleşmeyi değiştirir.
:s/eski/yeni/g     eski ve yeni şeklinde belirtilen satırdaki eşleşmeyi değiştirir.
:%s/eski/yeni/g  eski ve yeni şeklinde belirtilen bütün satırlardaki eşleşmeyi değiştirir.
:s/eski/yeni/gc     değişikliği onaylar.
:%s/,/^V^M/g         virgülleri yeni satırla değiştirir.
:%s/s*$//         satır sonlarındaki boşlukları temizler.
:%s/^.{30}//     her satırın ilk 10 karakterini siler.
:%s/.*/L&/     tüm dosyayı küçük harflere çevirir.
:s/.*/u&/         Satırın ilk harfini büyük harfe çevirir.
:%s/<./u&/g     her kelimenin ilk harfini büyük harfe çevirir.

:             komut geçmişini gösterir.
:g/kelime/d     kelime geçen bütün satırları siler.
:v/kelime/d     kelime geçmeyen bütün satırları siler.

:g/.*/m0        satırların dizilişini tersine çevirir.

:g/^$/d        tüm boş satırları siler.

* Diğer;

:se ff=unix     unix dosya formatı.
:se list         dosya sonları ve tabları göster. (kapatmak için :se nolist)
:se nu         satır numaralarını göster. (kapatmak için :se nonu)
:se sm         eklerken ilgili parantezleri göster. (kapatmak için :se nosm)

!!date         tarihi ekler. örnek olarak (Fri Oct 10 18:04:57 EEST 2008)
5!!sort         5 satırı sort komutuna gönderir ve çıktıyı getirir.
!}sort         imlecin bulunduğu yerden boş satıra kadar olan kısmı
sort a gönderir, sonucunu getirir.
!!awk ‘{print $3 ” ” $2 ” ” $1}’     bulunduğu satırdaki ilk 3 kolonun sırasını
awk ya göndererek değiştirir.

.         son komutu tekrar eder.
:n         sonraki dosyaya geçer.
:e#        önceki dosyaya geçer, :e DosyaAdı ile başka bir dosyaya geçilebilir.

MySQL de unutulan root u değiştirmek

1. Sunucuya ssh ile bağlantı kurun ve root yetkilerine sahip olun.
2. Çalışan mysql ve mysqld yazılımlarını durdurun.

“/etc/rc.d/init.d/mysql stop” veya
“/etc/rc.d/init.d/mysqld stop” veya
“service mysqld stop”

3. Çalışan mysql olup olmadığını kontrol edin.

ps axu | grep mysql

4. Aşağıdaki komutu kullanarak mysql i çalıştırın.

/usr/bin/mysqld_safe –skip-grant-tables

5. Aşağıdaki komutu kullanarak MySQL istemcisiyle mysql veritabanına bağlantı sağlayın.

/usr/bin/mysql mysql

6. Aşağıdaki komutla şifrenizi değiştirip çıkış yapın.
7. Aşağıdaki komutu kullanarak MySQL istemcisiyle mysql veritabanına bağlantı sağlayın.

UPDATE user SET Password=PASSWORD(‘YeniSifre’)
WHERE Host=’localhost’ AND User=’root’;

exit;

8. Son olarak veritabanınızı normal şekilde tekrar başlatınız. yeni şifrenizle giriş yapabilirsiniz.
Yukarıda kullanılan dosya yolları sisteminize göre değişiklik gösterebilir.