linux
Amilo M7440 ubuntu kablosuz bağlantı düğmesi
by admin on Apr.24, 2010, under linux
- http://fsam7440.sourceforge.net/ adresindeki yazılımını indirip
- arşiv dosyasını ayıkladıktan sonra
cd fsam7440-0.4 && make && sudo make install
- test etmek için
modprobe fsam7440
** derlerken
fsam7440.c:168: error: ‘proc_root’ undeclared (first use in this function)
gibi hatalar alırsanız, fsam7440.c dosyasını favori editörünüzle açıp iki “&proc_root”
değerini “NULL” olarak değiştirip hatayı giderebilirsiniz.
sort kullanarak ip adreslerini sıralamak
by admin on Apr.07, 2010, under linux
ipler.txt dosyasındaki karışık ip adreslerini,
10.1.1.11
10.1.1.20
10.1.1.1
10.1.1.12
10.1.1.2
192.168.1.9
192.168.2.1
192.168.0.121
192.168.1.1
192.168.1.12
GNU – Coreulits içinde bulunan Sort yazılımını kullanarak
sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 ipler.txt
sıralayabiliriz.
Sonucu :
10.1.1.1
10.1.1.2
10.1.1.11
10.1.1.12
10.1.1.20
192.168.1.1
192.168.1.9
192.168.2.1
192.168.1.12
192.168.0.121
-n –numeric-sort
Sayısal değere bakarak sıralar.
-t –field-separator=ayraç
Geçiş için boşluk yerine ayraç kullanılır.
-k –key=konum1[,konum2]
Sıralama anahtarı belirtmek için kullanılan seçenek: konum1de başlayan konum2de biten bir anahtar belirler (alan numarasını ve karakterin kelime içindeki yerini 1′den başlayarak sayar).
Bir siteden istenen dosyaların hepsini indirmek
by admin on Mar.25, 2010, under linux
wget kullanarak bir site içinde istediğimiz dosya tipine uyacak bütün dosyaları indirmek için aşağıdaki örneği uyarlayabiliriz.
wget -r -A “*.ogg” -U “Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-us)” –wait=15 http://en.wikipedia.org/wiki/Wikipedia:Sound/list
-c kaldığı yerden devam etme
-r (Recursive) dizin içeriğini indirme
-A (Accept) izin verilen uzantılar
-R (Reject) izin verilmeyen uzantılar
-U Belirtilen tarayıcı gibi davran
-w / –wait istekler arasında saniye bekle
daha fazla yardım için “man wget”
php’nin mail fonksiyonuyla gönderilen posta kaydını tutmak
by admin on Aug.28, 2009, under linux
php’nin mail() fonksiyonuyla gönderilen e-postalar varsayılan olarak tanımlı sendmail yazılımı vasıtasıyla gönderilir. Sendmail’in ayarlarından LOG düzeyini arttırsanız da hangi dosyadan veya hangi kullanıcı tarafından gönderildiğini bulamazsınız. Hele web sağlayıcısı olarak hizmet veren bir makinanız varsa hangi kullanıcı sizin kaynaklarınızı kullanarak önemsiz e-posta gönderiyor tespit etmek zordur. Akla gelen yöntemse php ile posta sunucusu arasında sendmail e köprü görevi üstlenen ve aynı zamanda kayıt tutan bir yazılım eklemek. Şöyle;
vi /usr/sbin/sendmail.spamkontrol
diyerek içine
#!/usr/bin/perl
# use strict;
use Env;
my $date = `date`;
chomp $date;
open (INFO, “>>/var/log/spam_log”) || die “Dosya Acilmadi ::$!”;
my $uid = $>;
my @info = getpwuid($uid);
if($REMOTE_ADDR) {
print INFO “$date – $REMOTE_ADDR ran $SCRIPT_NAME at $SERVER_NAME n \n”;
print ‘\n’;}
else {print INFO “$date – $PWD - @infon\n”;
print ‘\n’;}
my $mailprog = ‘/usr/sbin/sendmail’;
foreach (@ARGV) {
$arg=”$arg” . ” $_”;
}open (MAIL,”|$mailprog $arg”) || die “cannot open $mailprog: $!n”;
while () {
print MAIL;
}
close (INFO);
close (MAIL);
dosyayı kaydettikten sonra ;
chmod +x /usr/sbin/sendmail.spamkontrol
touch /var/log/spam_log
chmod 0777 /var/log/spam_log
Şeklinde gerekli yetkileri verdikten sonra isterseniz php.ini deki sendmail tarifini yeni dosyamız olan /usr/sbin/sendmail.spamkontrol olarak girebilirsiniz yada apache deki Virtual Host tanımına aşağıdaki gibi bir tanımlama girebilirsiniz.
php_admin_value sendmail_path '/usr/sbin/sendmail.spamkontrol'
Bu değeri herbir VirtualHost tanımına da girebilirsiniz. Apache'yi tekrar başlattıktan sonra /var/log/spam_log dosyasında ağaşıdaki örnek kayıt dosyası gibi çıktı alacaksınız.
[root@immortal ~]# tail /var/log/spam_log
Fri Aug 28 15:37:20 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:45:01 EEST 2009 - /home/testuser2 -
Fri Aug 28 15:53:30 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:57:43 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:58:47 EEST 2009 - /home/testuser2 -
Fri Aug 28 16:21:21 EEST 2009 - /home/testuser2 -
Eğer log dosyanızın boyutu çok büyürse log rotasyonu için /etc/logrotate.conf dosyasına aşağıdakileri ekleyebilirsiniz.
# SPAM LOG rotation
/var/log/spam_log {
monthly
create 0777 root root
rotate 1
}
[MattF ve ramprage'e teşekkürler]
bind dns konfigürasyon kontrolü
by admin on Aug.26, 2009, under linux
BIND kurulumu içinde gelen iki faydalı komutla hazırladığımız konfigürasyon kontrolümüzü yapabiliriz.
# named-checkconf /etc/named.conf
named-checkconf komutuna parametre olarak konfigürasyon dosyamızın adresini girdiğimizde bulduğu hatayı gösterecektir. Eğer hiç çıktı vermezse konfigürasyon dosyamızda sorun yok demektir. DNS sunucumuzu yeniden yükleyebiliriz.
# named-checkzone cemdogan.com /var/named/cemdogan.com.zone
named-checkzone komutuna parametre olarak önce alan adını daha sonra zone dosyamızın adresini girdiğimizde hata bulursa bulduğu hatayı, hatasızsa “OK” çıktısını alabiliriz. Kontrolümüzü tamamladıktan sonra DNS sunucumuzu yeniden yükleyebiliriz.
yedekleme yaparken kullanılabilecek faydalı komutlar
by admin on Aug.06, 2009, under linux
Bulunduğu çalışma dizininden başlayarak, boş alt klasörleri bulup silmek için;
find . -type d -empty -exec rmdir {} \;
İçeriği değiştirilmiş dosyaları bulmak için ;
find / -mmin 30 -type f (Son 30 dakika içinde değişenler)
find / -mtime -1 -type f (Son 24 saat içinde değişenler)
Bütün MySQL veritabanlarını kendi adlarında yedeklemek için;
for I in `echo “show databases;” | mysql | grep -v Database`; do mysqldump $I > “$I.sql”; done
A klasöründe bulunan dosyaları B klasöründen silmek için (yanlışlıkla açılan arşiv dosyaları) ;
for dosya in /*; do rm /`basename $dosya`; done
Uzaktaki web sunucusundaki dosyanın bulunup bulunmadığını kontrol etmek için ;
wget –spider -v http://www.google.com/robots.txt
Hard Disk model ve seri numarası bilgisini almak için;
hdparm -i /dev/sda1
GB,MB,KB ve Byte olarak, ağaç yapısında klasörlerin listelenmesi için;
du -b –max-depth 1 | sort -nr | perl -pe ‘s{([0-9]+)}{sprintf “%.1f%s”, $1>=2**30? ($1/2**30, “G”): $1>=2**20? ($1/2**20, “M”): $1>=2**10? ($1/2**10, “K”): ($1, “”)}e’
En fazla hafıza kullanan 10 işlemi ve detaylarını görmek için (top ve htop ile daha güzel sonuçlar alınabilir);
ps aux | sort -nk +4 | tail
[commandlinefu'ya teşekkürler]
servis durumunu kontrol eden betik
by admin on Jul.29, 2009, under linux
Ö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.shprogram=’proftpd’
date -d@1234567890 >> /var/log/kontrol.logif 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
by admin on Jun.18, 2009, under linux
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
by admin on Jun.13, 2009, under linux
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
by admin on Oct.10, 2008, under linux
* 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.
