İşletim SistemleriKategorisindeki makaleler listeleniyor
wget ile dosya indirme, durdurma ve hız limiti
wget ile indirilen dosyaları istenildiğinde CTRL+c tuş kombinasyonlarıyla durdurup daha sonra bu indirme işlemine devam etmek için -c argümanı komuda verilmelidir.
Hız limiti için ise --limit-rate=RATE argümanı kullanılmalı, KB/saniye olarak azami hız belirtilmelidir.
Saniye maksimum 80KB hız limitiyle ve sonradan devam edilebilir şekilde bir komut şöyle olmalı:wget http://site.com/dosya.tar.gz -c --limit-rate=80K
http://www.go2linux.org/limit_rate_resume_downloads_wgetsaniye bazında cronjob yaratma
Crontab ile açılan kayıtların minimum çalışma aralıkları 1 dakikadır. Bir dakikadan az süreli işler için sleep komudu kullanılabilir.
Örneğin her 20 saniye bir iş için 3 tane job kaydı açılır. Hepsi aynı anda tetiklenir fakat sondan iki tane job, sleep komuduyla bekletirlir.*/1 * * * * uygulama
*/1 * * * * sleep 20 && uygulama
*/1 * * * * sleep 40 && uygulama
http://www.alexxoid.com/blog/linux/how-to-run-linux-crontab-job-every-second.htmlssh ile girişin geç olması, çok bekletmesi
ssh ile uzak sunucuya ilk giriş yapılmaya çalışıldığında 20 saniye civarında bir bekletilmeye maruz kalıyorduk.
Neyin beklettiği şu komuttaki çıktıları izleyerek gördük.ssh -vvv user@host
Bizimki kerberos sebebiyle bekliyormuş.debug1: Unspecified GSS failure. Minor code may provide more information
Credentials cache file '/tmp/krb5cc_1000' not found
Uzak sunucudaki /etc/ssh/sshd_config dosyası içindeki GSSAPI direktifleri şu şekilde belirlenerek bekleme sorununu çözdük:GSSAPIAuthentication no
GSSAPIDelegateCredentials no
Sorunla ilgili çözümü şu sayfada buldum:
http://unix.stackexchange.com/questions/5621/how-to-speed-my-too-slow-ssh-login
Her seferinde şifre yazmamak için kendi id_rsa.pub dosyasını sunucudaki, sunucuya bağlandığınız kullanıcının home dizini içindeki .ssh dizinine yükleyebilirsiniz. Detaylı anlatan kılavuz:
http://blog.tquadrado.com/2007/edit-remote-scipts-on-local-vim-under-ssh-generated-rsa-keys/
Ek olarak, bir bilgisayardan bir kez şifre yazıp belirtilen saat kadar şifre yazmadan ssh bağlantısı yapılabilir. Bunun için ssh_config dosyasına(/etc/ssh/ssh_config):ControlMaster auto
ControlPath /tmp/ssh_mux_%h_%p_%r
ControlPersist 4h
satırlarını ekleyin.
http://pro.benjaminste.in/post/9038198674/super-fast-ssh-with-controlmaster-settingsLinux'te IP Bloklama
Linux'te bir ip adresini bloklamak için şu komudu terminalde çalıştırmak yeterli olacaktır:
#iptables -A INPUT -s 150.150.150.150 -j DROP
http://www.cyberciti.biz/tips/howto-block-ipaddress-with-iptables-firewall.htmlsshfs ile uzak bilgisayardaki dizini bağlama
sshfs ile ssh ile erişilebiln bir bilgisayardaki dizini, başka bir bilgisayara bağlayabiliriz. Örneğin masa üstündeki bir dizinlerden farksız gözükmesine rağmen, içindeki bilgiler uzak bilgisayarda saklanabilir. Böylece her defasında ssh ile işlem yapmak yerine sadece bu dizine sürükle bırak yapmak bile yetecektir.
öncelikle paketi kuracağız,
apt-get install sshfs
Son dizini oluşturacağız:
mkdir ~/uzakdizin
Ağ adaptörü bağlantı sağlandığında çalışacak betiği yazacağız:
vim /etc/network/if-up.d/sshmount
#!/bin/sh
echo "şifre" | sshfs sshUser@domain.com:/home/sshUser/dizin ~/uzakdizin -o password_stdinchmod +x sshmount komutu ile dosyaya çalıştırma izni vereceğiz.
Artık "network up" olduğunda bu dosya çalışıp uzak dizini bağlayacaktır. Ağ adaptörünün kopup tekrar bağlanmasını beklemeden:
./etc/network/if-up.d/sshmount ile dosyayı çalıştırıp bağlanıp bağlanmadığı test edilebilir.Php script'i başlangıçta çalıştırma
Bir php script'ini sistem açılışında çalıştırmak zor değil. Yapmanız gereken, çalıştırılacak php script'ini ve ve bunu başlatacak iki satırlık dosyayı hazırlamak:
Örnekte çalıştırılacak script şu olsun /var/www/takip.php
/etc/init.d/ dizini içinde istediğiniz isimli bir dosya oluşturun, ben adını deneme1 seçtim:
deneme1 dosyasının içeriği şöyle:#!/bin/sh
php /var/www/takip.php &
şimdi yapmamız gerejen bu dosyayı çalıştırılabilir yapmak:
$ chmod +x /etc/init.d/deneme1
sonra bunu başlangıçta çalıştıracak şekilde sisteme bildirmek:
$ update-rc.d deneme1 defaults
Hepsi bu kadar.
Test için kullandığım takip.php dosyası şöyle:
$i=0;
$argv=$_SERVER['argv'];
if(isset($argv[1])){
file_put_contents('/tmp/deneme.txt','argv='.$argv[1]. ' - '.date('H$
}
while(1){
$i++;
$str=$i.' - '.date('H:i:s')."\n";
file_put_contents('/tmp/deneme.txt',$str,FILE_APPEND);
sleep(3);
}
Sistemi yeniden başlattıktan sonra şu komutla neler olduğunu görebilirsiniz:$ tailf /tmp/deneme.txtsoftlink bir dizini kopyalama
Linux'de softlink'lerle dolu bir dizini fiziksel olarak kopyalamak için yani link yerine dosyalarının kendilerini kopyalamak için cp komutunun -L parametresini vermek yeterlidir.
$> cp -RL dizin yenidizin
