################################################################################
# Nama script : script-gnrt-u-terpakai
# Dibuat pada : 2 Mei 2015
# Di update pada : 1 Juli 2015
# Dibuat Oleh : Gunawan Jinnu
#
# Deskripsi :
# Script ini akan menggenerate user yang sudah diaktifkan sehingga
# dapat dihapus dengan mudah setelah 2x24jam atau dua hari kemudian.
# User yang digenerate ini belum dapat langsung dihapus karena
# masih ada yang belum kedaluarsa, dalam arti masa aktifnya
# belum mencapai 24 jam, sehingga akan aman menghapusnya ketika
# sudah 2x24jam.
# Script ini menghasilkan beberapa file (dipecah dalam beberapa file)
# dengan kelipatan 40 user per file dengan beberapa tujuan yaitu:
# 1. Menghindari error new content too long
# 2. Memudahkan maintenance gagal eksekusi, sehingga file
# yang gagal di eksekusi akan mudah diidentifikasi.
#
# Output dari script ini berupa file "HapusUserKedaluarsa40.txt",
# "HapusUserKedaluarsa80.txt" dan seterusnya tergantung banyaknya user yang telah
# diaktifkan.
#
# Cara memanfaatkan outputnya yaitu dengan mengeksekusinya dua hari kemudian
# dengan perintah "/import nama-file1.txt; /import nama-file2.txt;" (dan seterusnya)
# contoh : "/import HapusUserKedaluarsa40.txt; /import HapusUserKedaluarsa80.txt;"
#
# Ada beberapa user yang dikecualikan (tidak dimasukkan dalam daftar yang akan dihapus yaitu :
# 1. user-hotspot
#
################################################################################
#======================================================================
#code program dimulai disini
:log info ("============= MULAI ==============");
#Untuk menghitung jumlah user terpakai yg ditemukan
:global penghitung 0;
#Jika lebih dari seratus hasil (fungsi foreach a in) akan error, jadi variabel ini
#ini akan berkurang setiap kali ada temuan, sehingga pada saat mencapai 90
#maka hasil langsung ditulis ke file sebelum akhirnya fungsi berhenti.
:global nilaibhitung 40;
:global batashitung;
:set batashitung ($nilaibhitung);
#Variable untuk menyimpan satu nama user sementara
:global namauser "";
#Variable untuk menyimpan daftar semua nama user yang ditemukan sementara
:global isifile "";
#Variabel untuk menyimpan nama file
:global namafile "";
:foreach a in=[/tool user-manager user find] do={
:if ([/tool user-manager user get $a name]!="user-hotspot") do={
:if ([/tool user-manager user get $a uptime-used]>10m) do={
:set namauser [/tool user-manager user get $a name];
:set isifile ($isifile . "/tool user-manager user remove \"" .$namauser. "\"\n" );
:set penghitung ($penghitung + 1);
:set isifile ($isifile . ":put (\"User " .$penghitung. ": " .$namauser. " telah dihapus.\");\n" );
:put ("Ditemukan : " .$penghitung. ": " .$namauser);
#======================================================================
#Mengurangi batashitung dengan 1
:set batashitung ($batashitung - 1);
#Jika batashitung sudah nol, maka program dibawah ini akan di eksekusi
:if ($batashitung=0) do={
:set namafile ("HapusUserKedaluarsa" . $penghitung . ".txt");
#cek file ada atau tidak, jika tidak maka kita buat dan mengosongkan isinya
if ([:len [/file find name=$namafile]] != 1) do={
/file print file=$namafile;
:delay 5s;
}
#Mengisi HapusUserKedaluarsa.txt dengan isifile
/file set $namafile contents=($isifile);
:delay 3s;
:set isifile ("");
:set batashitung ($nilaibhitung);
#Penutup kode Jika batashitung sudah nol
}
}
}
#Penutup kode foreach in
}
#generate file terakhir yang tidak mencukupi batashitung
:set namafile ("HapusUserKedaluarsa" . $penghitung . ".txt");
#cek file ada atau tidak, jika tidak maka kita buat dan mengosongkan isinya
:if ([:len [/file find name=$namafile]] != 1) do={
/file print file=$namafile;
:delay 10s;
}
#Mengisi HapusUserKedaluarsa.txt dengan isifile
/file set $namafile contents=($isifile);
:delay 3s;
:set isifile ("");
:set batashitung ($nilaibhitung);
:put ("Total Ditemukan = " . $penghitung);
:put ("============= SELESAI ==============");
#======================================================================
Tidak ada komentar:
Posting Komentar
Apa tanggapan anda ?