Bash - Alarm menggunakan bash programming
Linux mempunyai banyak cara untuk melakukan suatu perintah secara terjadwal, tersedia tool ataupun bash script yang dapat ditulis sendiri, contoh adalah ketika suatu perintah perlu untuk dijalankan pada waktu tertentu, bash script dapat digunakan untuk menjadwalkan suatu perintah, berikut contoh bash script untuk menjadwalkan perintah yang akan dieksekusi pada waktu tertentu, fungsinya kurang lebih seperti alarm, script berikut merupakan contoh untuk menjalankan aplikasi audacious
yang akan menjalankan file TvQuran_athan.mp3
dengan volume yang diatur sesuai dengan jadwal yang ada pada file ~/.bdir/.alarm.scdl
.
Dalam script ini ada beberapa file dan applikasi yang digunakan yaitu :
- File
~/.bdir/.alarm.scdl
, yang berisi daftar Jadwal dalam Format waktu dan keterangan - Aplikasi
leafpad
untuk membuka file~/.bdir/.alarm.scdl
jika ingin mengedit jadwal - Aplikasi
audacious
, adalah aplikasi yang akan dieksekusi sesuai jadwal - File
TvQuran_athan.mp3
yang akan dijalankan menggunakan aplikasiaudacious
.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash
fload(){
cek=$(cat ~/.bdir/.alarm.scdl |wc -w)
if [ "$cek" == "0" ]
then
echo " No Schedule Found !"
else
IFS=$'\n';i=0;for fl in $(cat ~/.bdir/.alarm.scdl|sort);do i=$((i+1)); echo -e " $i.\t $fl"; done ;
echo "-------------------------------------------------"
fi
}
fopen(){
leafpad ~/.bdir/.alarm.scdl &
}
fclear(){
read -p " Clear All Schedule ? [y/Y] [q:exit] : " clall
if [ "$clall" == "y" ] || [ "$clall" == "Y" ]
then
if echo "" > ~/.bdir/.alarm.scdl;then echo " Suksess Clear All Schedule in .alarm.scdl file ";fi
else
echo ' CANCEL Clear All Schedule...'
fi
}
fadd(){
while :
do
echo " Time Now : "$(date +%H:%M)
read -p " Add Time, exp: 05:00 msg [q:exit] : " tm
if [ "$tm" = "q" ] || [ "$tm" = "Q" ]
then
break
else
if echo "$tm" >> ~/.bdir/.alarm.scdl;then echo " Suksess Addd $tm to .alarm.scdl file ";fi
fi
# echo "$tm"
done
}
falarm(){
while :
do
clear;
IFS=$'\n';
i=0;
for fl in $(cat ~/.bdir/.alarm.scdl)
do
stime=$(awk '{print $1}' <<< $fl);
smesg=$(awk '{print $2}' <<< $fl);
# echo -e " Time : $stime, Message : $smesg"
# echo -e " $i.\t $fl";
jam=$(date +%H:%M)
sjam=$(date +%H:%M:%S)
if [ "$stime" == $jam ]
then
clear
pactl set-sink-volume 0 150% # tambah volume sound maksimal 150%
# audacious ~/Music/adzan.mp3&
audacious ~/Music/TvQuran_athan.mp3&
echo "--------------------------------------"
fload
echo "--------------------------------------"
sleep 25
killall audacious
sleep 55
else
clear
echo "--------------------------------------"
fload
echo "--------------------------------------"
echo "Sekarang Menunjukan Jam : $sjam"
sleep 3
fi
done
done
}
fhlp(){
echo "-------------------------------------------------"
echo " Time Now : "$(date +%H:%M)
echo "-------------------------------------------------"
echo " Command : a --> Add time to Schedules"
echo " --> Format Exp : [time] [message]"
echo " --> Add Time Exp 1 : 05:00 Bangun_Sholat_Subuh"
echo " c --> Clear All Schedule"
echo " h --> Help "
echo " l --> List times Schedules"
echo " o --> Open file .alarm.scdl in leafpad app"
echo " s --> Start Alarm If Schedules Exists"
echo " q --> EXIT"
echo "-------------------------------------------------"
}
tes(){
IFS=$'\n';
for fl in $(cat ~/.bdir/.alarm.scdl)
do
stime=$(awk '{print $1}' <<< $fl);
smesg=$(awk '{$1="";print}' <<< $fl);
# stris="$stime --> $smesg"
echo "Hasil : $stime --> $smesg"
done
}
fhlp;
while :
do
# fhlp;
read -n1 -r -p " Command ? [q/Q to exit] : " cmd
echo -e "\n-------------------------------------------------"
if [ "$cmd" = "q" ] || [ "$cmd" = "Q" ]
then
fhlp;break
fi
if [ "$cmd" = "" ]
then
fhlp
fi
case "$cmd" in
o|O) fopen;;
l|L) fload;;
a|A) fadd ;;
c|C) fclear;;
s|S) falarm;;
h|H) fhlp;;
t|T) tes;;
esac
done
Post by : admin @ kost Yogyakarta.