Mengirim Pesan ke LTSP/Thinstation Client

Akhirnya aku menemukan script untuk mengirimkan pesan ke client.

http://www.mail-archive.com/ltsp-discuss@lists.sourceforge.net/msg32597.htm

installasi :

login sebagari root

$ sudo -i

buat file send_message.sh dengan text editor (vi, vim, gedit atau mousepad) dan copy paste scripnya

# mousepad send_message.sh

#!/bin/bash
# =============================
# Memberikan nama pada argument
# =============================
# $* artinya semua argument
# 'shift' diperlukan untuk memastikan semua argument di ambil
# stelah argument pertama
username=$1
shift
message=$*

# gmessage jika pakai gnome, kmessage untuk kde atau pakai xmessage
msgprg="gmessage -buttons \"GTK_STOCK_CLOSE\" -center -timeout 60 -wrap -geometry 400x200 -title \"Message from the Administrator\""

# Fungsi untuk merespon error dalam penggunaan baris perintah (commond line)
function usage ()
{
   echo " "
   echo " SRCIPT HARUS DI JALANKAN SEBAGAI ROOT!!!"
   echo " SRCIPT HARUS DI JALANKAN SEBAGAI ROOT!!!"
   echo " SRCIPT HARUS DI JALANKAN SEBAGAI ROOT!!!"
   echo " "
   echo "  usage: $0 [USERNAME] [MESSAGE]"
   echo "         dimana USERNAME adalah 1 user spesifik"
   echo "         atau jika USERNAME=all maka pesan akan diterima oleh semua user yang login"
   echo " "
   echo "         semua text setelah USERNAME menjadi bagian dari pesan/MESSAGE"
}

# Fungsi untuk memastikan user benar-benar login ke server
function user_check ()
{
   check=$(who | awk '{print $1}' | grep ^"$username" | uniq )
   if [ -f $check ]; then
       echo "     Maaf, username $username tidak login ke server"
       exit
   fi
}

# Fungsi untuk mengirim pesan ke semua user
function msg_all ()
{
   users=$(who | awk '{print $1}' | sort | uniq )
   for user in $users
   do
      display=$(who | grep ^"$user" | awk '{print $2}' | grep -e ":" )
      # jika display bernilai ":0" maka user telah login ke server
      if [ "$display" = :0 ]; then
         display="`hostname -f`:0.0"
      fi
      # gunakan ini untuk access_control
      su 2>/dev/null 1>&2 -c "$msgprg -display $display $message" - $user &
      # gunakan baris ini jika "disable_access_control=y" ada pada file lts.conf
      # $msgprg -display $display $message 2>/dev/null &
   done
}

# Fungsi untuk mengirim pesan pada satu user
function msg_one ()
{
      # diperlukan untuk mendapatkan display hanya untuk satu user
      display=$(who | grep ^"$username" | awk '{print $2}' | grep -e ":" )
      # jika display bernilai ":0" maka user telah login ke server
      if [ "$display" = :0 ]; then
         display="`hostname -f`:0.0"
      fi
      su 2>/dev/null 1>&2 -c "$msgprg -display $display $message" - $username &
}
# ====================================
# Script untuk memastikan semuanya OK
# ====================================
# Memastikan sedikitnya ada 2 argument
if [ $# -lt 2 ]; then
   usage
   exit
fi

# Memastikan user telah login sebagai root
if [ $USER != "root" ]; then
   usage
   exit
fi 

# ===================================
#  Jika semuanya OK, saatnya bekerja
# ===================================
if [ "$username" = all ]; then
   msg_all
   exit
else
   user_check
   msg_one
   exit
fi
exit
#end script

simpan dan chmod +x supaya bisa di execute# chmod +x send_message.shInstall gmessage

# apt-get install gmessage

Jalankan dengan perintah

# ./send_message.sh [username] [pesan]

usage: “./send_message.sh [USERNAME] [MESSAGE]”
dimana USERNAME adalah 1 user spesifik”
atau jika USERNAME=all maka pesan akan diterima oleh semua user yang login”

semua text setelah USERNAME menjadi bagian dari pesan/MESSAGE”
have fun 😀

Iklan