ISO (https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso)
HOSTNAME | IP |
srvTOTEM | 192.168.0.145 |
srvNovoSGA | 192.168.0.243:8765 |
print243 | 192.168.254.243 |
Atualizando o sistema e instalando os pacotes necessários
$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get install figlet curl dconf-editor ssh vim -y && sudo apt-get clean
Na mensagem de atualização do sistema clique em “Não atualize”
Desativar a ferramenta de relatórios de falhas Ubuntu
$ gedit /etc/default/apport
# set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=0
Instalação do TeamViewer (versão 13)
$ wget https://download.teamviewer.com/download/linux/version_13x/teamviewer_amd64.deb
$ sudo dpkg -i teamviewer_amd64.deb
$ sudo apt-get -f install
hold é usado para marcar um pacote como retido, o que vai prevenir que o pacote seja automaticamente instalado, atualizado ou removido.
$ sudo apt-mark hold teamviewer
$ sudo apt-mark hold firefox
Instalando a impressora Epson TM T20
Download do driver AQUI ou em: https://download.epson-biz.com/modules/pos/index.php?page=single_soft&cid=5012&pcat=3&pid=37
$ wget https://blog.joserodriguesfilho.com/wp-content/uploads/2021/05/tmx-cups-2.0.3.0.tar.gz && tar -vzxf tmx-cups-2.0.3.0.tar.gz && cd tmx-cups/
$ sudo ./install.sh
install.sh for "TM/BA Series Printer Driver for Linux" Ver.2.0.3.0
Copyright (C) Seiko Epson Corporation 2010-2016. All rights reserved.
Checking for incompatible packages...
Please select your distribution.
1.RHEL 6.4 x86(32bit)
2.RHEL 6.4 x86_64(64bit)
3.RHEL 6.5 x86(32bit)
4.RHEL 6.5 x86_64(64bit)
5.Ubuntu 12.04 x86(32bit)
6.Ubuntu 12.04 x86_64(64bit)
7.Ubuntu 14.04 x86(32bit)
8.Ubuntu 14.04 x86_64(64bit)
9.Ubuntu 9.04 x86(32bit)
10.Ubuntu 9.04 x86_64(64bit)
11.openSUSE 11.1 x86(32bit)
12.openSUSE 11.1 x86_64(64bit)
13.openSUSE 12.2 x86(32bit)
14.openSUSE 12.2 x86_64(64bit)
15.openSUSE 13.1 x86(32bit)
16.openSUSE 13.1 x86_64(64bit)
Select number [0(cancel)/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16]? 8
- Digite 8 e depois Enter para finalizar
Faça a instalação da impressora
Altere a “Media Size” conforme abaixo
Ajustes de impressão no Firefox, após configurado o sistema faça a impressão de uma senha para abrir as configurações da impressora.
Bloqueie o acesso a configuração com a tecla Q
Ajustes no Firefox
$ firefox about:config
print.show_print_progress | false
print.always_print_silent | true
mousewheel.with_control.action | 0
zoom.maxPercent | 100
zoom.minPercent | 100
browser.sessionstore.resume_from_crash | false
Ajustes do sistema
Ajustes da tela
# sudo dconf-editor
Script de inicialização
$ sudo vim /etc/hosts
$ 192.168.0.243 Servidor
$ sudo mkdir -p /opt/totem
$ sudo vim /opt/totem/start.sh
#/usr/bin/env bash
hosts="
Servidor
"
for i in $hosts
do
sleep 30 | echo "# Inicializando sistema aguarde..."
echo "# Verificando: $i"
if ping -qc 10 $i
then
echo "# $i........ [OK]"
sleep 5
firefox --kiosk http://192.168.0.243:8765/totem
exit
else
echo "# Contate suporte, sem comunicação com o $i. Desligando..."
sleep 40
shutdown -h now
fi
done | zenity --title "PMFR - Totem" --progress --no-cancel --pulsate --auto-close --auto-kill --width=450 --height=100
$ sudo chmod +x /opt/totem/start.sh && sudo chown joserf /opt/totem/start.sh
Avisos via Telegram (impressora off-line)
$ sudo vim /opt/totem/print.sh
#!/bin/bash
TOKEN=""
CHAT_ID=""
TOTEM='Totem Paço municipal'
PRINT=print023
MSG_SUCCESS="$PRINT '$TOTEM' voltou a responder ao ping em:"
MSG_ERROR="$PRINT '$TOTEM' parou de responder ao ping em:"
IP=192.168.254.23
FILE=lock-file
NOW=$(date +"%d/%m/%Y %H:%M:%S")
ping -qc 5 $IP > /dev/null
if [ $? -ne 0 ] && [ ! -f $FILE ];then
echo "$PRINT '$TOTEM' parou de responder ao ping em: $NOW" | curl -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d "chat_id=$CHAT_ID&text=$MSG_ERROR $NOW" >/dev/null 2>&1
touch $FILE
exit
else
ping -qc 5 $IP > /dev/null
if [ $? -ne 0 ] && [ -f $FILE ];then
echo "$PRINT '$TOTEM' continua sem responder ao ping, o aviso via Telegram já foi disparado, não enviar novamente..."
exit
else
ping -qc 5 $IP > /dev/null
if [ $? -eq 0 ] && [ -e $FILE ];then
#Calculando o tempo total de inatividade..
echo "A impressora respondeu ao ping $NOW" | curl -X POST "https://api.telegram.org/bot$TOKEN/sendMessage" -d "chat_id=$CHAT_ID&text=$MSG_SUCCESS $NOW" >/dev/null 2>&1
rm -rf $FILE
else
echo "A impressora está respondendo ao ping, o aviso via Telegram já foi disparado, não enviar novamente..."
fi
fi
fi
$ sudo chmod +x /opt/totem/print.sh
Desligamento automático
$ sudo vim /etc/crontab
# Desligamento automático (16:15)
15 16 * * * root shutdown -h 1
# Monitora a impressora por ping
* * * * 1-5 root cd /opt/totem && sh print.sh >/dev/null 2>&1
Inicialização
Para finalizar reinicie o totem, não esqueça de colocar uma imagem de fundo do seu gosto 🙂
*Update 16/01/2024
#!/bin/sh
# Configurações dos Totens
IP_P="192.168.0.108"
MAC_P="00:e0:4b:41:00:69"
IP_F="192.168.0.145"
MAC_F="70:85:c2:d8:27:c0"
# Função para enviar mensagem
enviar_mensagem() {
local mensagem="$1"
wget -qO- "http://192.168.0.243:3001/SendMessage?token=&numero=55119&mensagem=$mensagem" >/dev/null 2>&1
}
# Verifica o número de argumentos
if [ $# -ne 1 ]; then
echo "Uso: $(basename "$0") [-p Paço Municipal] | [-f Franco Fácil] [-h Versão]"
exit 1
fi
# Realiza a ação com base no argumento fornecido
case "$1" in
-p|-P)
wakeonlan "$MAC_P"
sleep 30
ping -c5 "$IP_P" > /dev/null
if [ $? -eq 0 ]; then
enviar_mensagem "Totem Paço Municipal inicializado com sucesso!"
exit 0
else
enviar_mensagem "Erro na tentativa de inicialização do Totem Paço Municipal!"
fi
;;
-f|-F)
wakeonlan "$MAC_F"
sleep 30
ping -c5 "$IP_F" > /dev/null
if [ $? -eq 0 ]; then
enviar_mensagem "Totem Franco Fácil inicializado com sucesso!"
exit 0
else
enviar_mensagem "Erro na tentativa de inicialização do Totem Franco Fácil!"
fi
;;
-h|-H)
echo "José Rodrigues Filho"
echo "Wake on lan Totem | V1.0"
;;
*)
echo "Opção inválida, use: [-p Paço Municipal] | [-f Franco Fácil] [-h Versão]"
exit 1
;;
esac