2015-03-17

Ubuntu Linux 用指令發送訊息給使用者 (1/3)

阿舍以前有在管理 Server 的時候,每次需要重開機就會需要用到廣播的指令來告訴線上的使用者說,幾分鐘後就會重開機,不過,那時候管的不是 Ubuntu,而是 Windows 和 Lotus Notes,都是有圖型介面可以打一打就送出去的,後來,在用 Ubuntu 之後,這樣的機會反而變少了,因為阿舍用到的 Ubuntu 多是 Server 端,平時幾乎不會有人登進去的哩 !




而且,shutdown 這個指令本身就可以在執行關機前發出訊息來告知已登入的使用者說,系統在幾分鐘後要準備關機了,所以,阿舍就沒有多想到要去瞭解一下這個 Ubuntu 和 Linux 是怎麼廣播訊息給所有已登入的使用者的,直到這二天阿舍看到 wall 這個指令,覺得滿好奇的,所以,就來研究了一下怎麼用指令發訊息給其他的使用者哩!

shutodwn 指令有個 -k 選項會發訊息但不會真的關機

在 Ubuntu 和 Linux 上要發送訊息給使用者的方法有不少,阿舍之前有介紹過用 ncat 指令的方法,不過,這種方式需要二邊都有啟動這個 ncat 才行,而阿舍這次主要要介紹的是可以由單方發動的,就是一定會讓對方收到的方式,而第一個要介紹的,就是這個 wall 指令哩 !

wall 指令是要有 sudo 權限的使用者才可以用的,透過 wall 指令可以強迫廣播訊息給所有的已登入的使用者,不論使用者有沒有設定成拒收訊息,都是會被強迫接收的,所以,用 wall 指令來擴播,可以保證一定會傳給所有線上的使用者的哩 ! ... 呵 !

wall 指令的用法有一點點的不同,它是接收標準輸入的訊息來傳送的,而不是把要傳送出去的訊息打在 wall 指令後面的那種用法,下面第一行的方式就是 wall 指令常用的操作方式,把要傳送出去的指令利用 echo 指令來傳給 wall 指令,但是,wall 指令比較實用的方式是利用下面第二行的方式,也就以指定檔案的方式來送出檔案的內容哩 !

$ echo "Hello !" wall

$ wall msg.txt

透過上面第二行的方式,可以把要傳送的訊息先打好之後,再用 wall 指令傳送出去,這種方式適用在內容超過一行的時候,另外,如果有設定檔變更,需要請使用者配合調整,也是可以透過檔案的方式,把設定檔的內容傳送出去,這樣就可以即時傳送給所有的線上的使用者來變更,即快速方便哩 ! ... (使用者收到訊息後,只要按 Enter 鍵就可以跳出訊息)

另外,要說明的是,雖然 wall 有一個 -n 的選項可以不顯示是誰發出來的訊息,不過,好像只有 root 本身發的訊息才會讓 -n 選項有作用,阿舍試著把 sudoer 的使用者加到 root 和 tty 群組來試,還是沒有作用的哩 ! ....

未完待續 ....

推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁