Bash Script Mencegah Script Berjalan Duplikat Berkali-kali Proses

Kadang kita mengeksekusi script bash melalui cron setiap menit sedangkan script tersebut belum menyelesaikan tugasnya.  Yang terjadi script berjalan duplikat dan berkali-kali.

Berikut ini adalah contoh script yang bisa anda gunakan untuk mendeteksi script yang sudah berjalan.

#!/bin/sh

proses=`ps aux | grep namafile.sh | grep -v grep | wc -l`
if [[ $proses -gt 2 ]]; then
        echo "script sudah jalan";
        exit;
fi

Untuk mengujinya silahkan buat misalnya testrun.sh dan dibawahnya tambahkan sleep 30 dengan tujuan agar script tersebut selesai setelah 30 detik.

kira-kira seperti ini

#!/bin/sh

proses=`ps aux | grep testrun.sh | grep -v grep | wc -l`
if [[ $proses -gt 2 ]]; then
        echo "script sudah jalan";
        exit;
fi
#menguji sleep 30 second
sleep 30;

Bukalah beberapa window bash dan jalankan script testrun.sh secara bersamaan, maka yang anda dapatkan adalah sebagai berikut :

[root@script]# ./testrun.sh
script sudah jalan

Pertanyaan yang mungkin muncul adalah mengapa -gt adalah 2 dan bukan 1?

Adapun perhitungannya adalah sebagai berikut :

Ketika testrun.sh berjalan maka terhitung 1 kemudian melakukan pengecekan ps aux dan apabila nilainya 1 maka script yg sedang dijalankan tersebut dianggap telah berjalan dan keluar output “script telah berjalan” yang sebenarnya tidak ada script lain yg berjalan kecuali proses yang saat itu dilakukan.

Demikian dan selamat mencoba.

Feed / RSS

Dapatkan artikel terbaru terkirim ke email anda. Klik disini Subscribe in a reader

Bash Script Kalkulasi 2 Waktu dan Tanggal Dalam Jam Detik Menit

Berikut ini adalah kumpulan bash script kalkulasi waktu dan tanggal dengan output jam detik dan menit:

Kalkulasi 2 waktu output dalam jam menit dan detik

START=$(date +%s);
sleep 1; # Your stuff
END=$(date +%s);
echo $((END-START)) | awk '{printf "%d:%02d:%02d", $1/3600, ($1/60)%60, $1%60}'

untuk contoh script lainya menyusul.

Feed / RSS

Dapatkan artikel terbaru terkirim ke email anda. Klik disini Subscribe in a reader

Bash Script Menghapus Spasi & Baris Kosong (New Line) pada File

Bagaimana cara menghapus spasi dan baris kosong pada file menggunakan bash script ?

Menghapus baris kosong.

[root@]# cat file.txt

satu
dua

tiga

empat

[root@]# sed -i '/^$/d' file.txt
[root@]# cat file.txt
satu
dua
tiga
empat

Menghapus Spasi

[root@script]# cat file.txt
satu lima
dua puluh
tiga ratus
empat ribu
[root@script]# cat file.txt | tr -d "[:blank:]"
satulima
duapuluh
tigaratus
empatribu

Menghapus Spasi dan New Line

[root@script]# cat file.txt
satu lima
dua puluh
tiga ratus
empat ribu
[root@script]# cat file.txt | tr -d "[:space:]"
satulimaduapuluhtigaratusempatribu[root@uvcms1 script]#

Menghapus new line saja

[root@script]# cat file.txt
satu lima
dua puluh
tiga ratus
empat ribu
[root@uvcms1 script]# cat file.txt | tr -d "\t\n\r"
satu limadua puluhtiga ratusempat ribu[root@script]#

 

Selamat mencoba.

Feed / RSS

Dapatkan artikel terbaru terkirim ke email anda. Klik disini Subscribe in a reader