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: Useful Commands (kullanışlı-faydalı komutlar)

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

lscpu
check Thread(s) per core

Delete all files except specific file extension (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

Remove except some files (bazı dosyalar haricinden hepsini silme)

rm */!(align_*)  #dizin ve alt klasörlerdeki align ile başlayan dosyalar hariç tüm dosyaları siler

Delete all empty folders repititive (bir dizin içerisindeki bütün alt boş klasörlerin silinmesi).

find . -type d -empty -exec rmdir "{}" \;

Delete repetitive lines in a file and save as different file (bir dosyadaki tekrarlayan satırların silinip yalın bir şekilde başka bir dosyaya kaydedilmesi);

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

Find a file in subfolders (bir dosyayı tüm alt klasörlerde arama);

find ./ -name "filename*"

Get my public ip from commandline (public ip adresinin komut satırıyla bulunması);

curl ipinfo.io/ip

Run command with parameter on terminal (terminalden parametre ile komut çalıştırma);

parameter='ls'
$parameter | wc -l

List empty folders (Boş klasörleri listeleme)

find . -type d -empty

Count of just all files in directory (bir dizindeki alt dizinler dahil bütün dosyaların toplam sayısı)

find * -type f | wc -l

Find unique, distinct lines in text file (text dosyası içerisindeki unique satırları bulma)

sort file_name.txt | uniq > new_text.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 – Örnekler

Slurm ile ilgili yazdığımız bildiriye bağlantıdan ulaşabilirsiniz.

You can access our report about Slurm from the link


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

Çalışan, bekleyen ve yeni bitmiş işler hakkında bilgi edinme

sacct 
sacct -u username | grep COMPLETED

Bir işi gönderirken bazı node’lara işin gönderilmesini önleme (yavaş çalışan bir node vardır işin bu node’a gitmesini istemiyorsunuzdur).takipçi satın al

sbatch --exclusive=nodeismi scriptname

Kuyrukta PENDING olarak bekleyen işin tahmini başlama süresini görüntüleme

squeue --start

Kuyruktaki bütün işlerin JOBID’ye göre sıralanmış hali.

squeue --sort=i 
veya
squeue -S i