Kategori Arşivi Linux

Ubuntu rm: cannot remove ‘…’: Device or resource busy hatası ve çözümü

Ubuntu’da bir klasörü cp ile başka bir yere kopyalarken işlemi kesmek zorunda kaldım. Sonrası ilgili klasörü silmeye çalıştığımda rm: cannot remove ‘data/.nfs0000000004f9760f0000000c’: Device or resource busy hatasını aldım ve dosya silinemedi. Dosyayı silebilmek için lsof komutundan yararlandım. Öncelikle aşağıdaki kod ile ilgili dizinde çalışan process’in id‘sini öğrendim.

lsof +D /path

Daha sonra kill -9 id komutu ile process’i öldürdüm. İlgili dizin artık meşgul değil yada herhangi bir process tarafından kullanılmıyor. Dolayısıyla artık silebilirim.

Linux – copy cdrom files to .iso

sudo cat /dev/srx > /home/<user_name>/<file_name.iso>

Postgresql uzak sunucudan otomatik backup alma işlemi

sudo apt-get install postgresql-client

Öncelikle backup.sh adında bir script oluşturdum. Script’in içeriği şu şekilde olacak;

BACKUP_DIR=/directory_to_backup 
PGPASSWORD="password" /usr/bin/pg_dump -C -h hostname -U dbuser dbname | gzip > $BACKUP_DIR/"`date +\%Y-\%m-\%d-\%H\%M\%S`.gz"

İlk satırda backup’ın hangi dizine alınacağını belirliyoruz. İkinci satırda ise öncelikle bağlanacağımız postgresql veri tabanının şifresi, pg_dump binary’sinin bulunduğu dizin, sunucunun ip adresi yada hostname’i, veri tabanı kullanıcısının ismi, veri tabanının ismi yazıldıktan sonra backup’ın sıkıştırılma formatı olarak gzip belirleniyor ve backup’ın alınacağı dizine scriptin çalıştırılma tarihi ve saati eklenerek kaydediliyor. Scripti hazırladıktan sonra cron job olarak olarak ekleyip bu işlemi otomatikleştirebilirsiniz. Cron’a aşağıdaki şekilde eklediğiniz iş ile saat 12 ve 18’de olmak üzere günlük iki adet backup alacaktır.

30 12,18 * * * bash /root/backup.sh

Aşağıdaki cron job’ı ise her dakika çalışmaktadır.

*/1 * * * * bash /root/backup.sh

Iptables – fail2ban: Yararlı komutlar (Centos)

Iptables’ı kaydedip, servis restart işleminde silinmesini önlemek

iptables-save | sudo tee /etc/sysconfig/iptables

Kuralları listeleme (port numaraları nümerik olarak)

iptables -L -n

Herhangi bir chain’e accept kuralı ekleme

iptables -I chain_name 1 -s ip_address -j ACCEPT

Fail2ban için exception ekleme; /etc/fail2ban/jail.conf (yada duruma göre jail.local) dosyası içerisinde ilgili satırı düzenlemek gerekiyor.

ignoreip = 127.0.0.1/8 xx.xx.xx.xx # (xx eklemek istediğiniz ip adresi)

Linux: Aynı isimli bütün processler’i öldürme

Aşağıdaki script’le aynı isimdeki tüm process’leri öldürebilirsiniz.

for KILLPID in `ps ax | grep 'process_name' | awk ' { print $1;}'`; do 
  sudo kill -9 $KILLPID;
done

Linux: Useful Commands

Check if hyper-threading is enabled (Hyper threading aktif mi kontrolü);

lscpu
check Thread(s) per core

Delete all files except txt files (belirli bir uzantıya sahip dosyalar haricindeki tüm dosyaların silinmesi);

find . -type f ! -name '*.txt' -delete

Remove all files which has specific extension (belirli bir uzantıya sahip tüm dosyaların silinmesi);

find . -name "*.txt" -print0 | xargs -0 rm

Delete repetitive lines in a file and save as different file

cat filename.txt | sort | uniq > new_file.txt

LINUX: Dropbox Command Line Interface (CLI) Installation

Installation and Using:

mkdir -p ~/bin
wget -O ~/bin/dropbox.py "https://www.dropbox.com/download?dl=packages/dropbox.py"
chmod +x ~/bin/dropbox.py

Using:

 
 ~/bin/dropbox.py help

Source: http://www.dropboxwiki.com/tips-and-tricks/using-the-official-dropbox-command-line-interface-cli

Slurm Faydalı Komutlar

Bir kullanıcıya ait tüm işleri sonlandırma:

scancel -u username

Bir işi spesifik bir node’da çalıştırma:

sbatch --nodelist nodename scriptname

Belli bir node’u drain durumuna alarak sonraki işlerin ona verilmemesini sağlamak.

scontrol update nodename=nodeismi state=drain reason="sebebi"

Sunucuda node bilgilerini görme (node ismi belirtilmezse tüm node’ları gösterir);

scontrol show nodes nodeismi

Node’u resume moduyla tekrar aktif etme;

scontrol update nodename=nodeismi state=resume

Client’larda node bilgilerini görme;

slurmd -C

Çalışmayan node’lar ve çalışmama sebeplerini görme;

sinfo -R

Çalışan ve çalışmayan tüm node’ları gruplayarak listeleme;

sinfo -l

Sunucuda slurm servisini restart etme (çalışan işlere zarar vermez);

systemctl restart slurmctld.service

Kuyruktaki bir iş hakkında bilgi edinme;

scontrol show job job_id