Agrega monitor

This commit is contained in:
Daniel R 2024-05-13 11:28:25 -03:00
parent 31739ecdcf
commit 02821b9874
2 changed files with 563 additions and 0 deletions

401
libreofficeInstaller.sh Normal file
View File

@ -0,0 +1,401 @@
#!/bin/bash
#Autor: Marcos Ferreira da Rocha
#Email: marcos.fr.rocha@gmail.com
#Blog: alfabech.com
#¿Dónde encontrar al creador del script?, Grupo de LibreOffice en Telegram https://t.me/libreofficebr, https://t.me/libreofficebrasil
#Versión: 1.0
#Fecha: 18 de Mayo 2017
#Versión en español: Daniel A. Rodriguez <drodriguez@libreoffice.org>
exec >& >(tee -a /tmp/$(date +"%d-%m-%y"--%Hhoras:%mmin:%Sseg)-install-libreoffice.log)
export PATH="/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
if [ -e /usr/bin/dnf ]; then
#Archivo de aviso sobre el script
wget -c wget -c https://git.cuates.net/drodriguez/Instalacion-LibreOffice/raw/branch/main/README.md -P /tmp
FILE=/tmp/aviso
zenity --text-info --width=800 --height=600 \
--title="Acerca de LibreOffice" \
--filename=$FILE
else
# zenity --text-info --html --width=800 --height=600 \
# --title="Acerca de LibreOffice" \
# --url=https://es.libreoffice.org/descarga/
zenity --info --width=800 --height=600 --text="
LibreOffice es ofrecido por TDF | The Document Fundation
https://www.documentfoundation.org/ \n
https://es.libreoffice.org es el portal de la Comunidad Hispana. \n
Este script descarga e instala LibreOffice directamente de los repositorios oficiales.\n
Es posible modificar lista de acuerdo con su necesidad, para ambientes corporativos sugerimos la creación de \n
un repositorio local para LibreOffice, asi como en este script.\n
Invitamos a visitar la página del projeto ( LibreOffice ).\n
http://www.libreoffice.org/
"
fi
case $? in
0)
echo "Iniciar Instalación"
#0 Definimos el repositorio estable.
estadoversion="stable"
#1 ## Escogemos la versión de LibreOffice
vs=$(zenity --entry --title="Ingrese la versión" --text="versión:")
if [ $? == 0 ]; then
#2 Aqui se pode ingresar una lista de servidoes prefereridos para descargar LibreOFfice, con la posibilidad de ingresar un servidor local, ideal para ambientes empresariales
#En este caso utilicé el servidor de mi red con IP 192.168.0.193/tdf
servidor=$(zenity --list --radiolist --width=450 --height=400 \
--title="Escoja el servidor espejo" \
--text="Selecione el servidor para realizar la descarga de los paquetes de LibreOffice" \
--column="Selección" --column="Link" --column="Institución" \
TRUE http://tdf.c3sl.ufpr.br "UFPR" \
FALSE http://linorg.usp.br/LibreOffice "USP" \
FALSE http://ftp.unicamp.br/pub "UNICAMP" \
FALSE http://mirror.pop-sc.rnp.br/mirror/tdf "Pop-SC" \
FALSE http://mirror.nexcess.net/tdf "Mirror Nexcess" \
FALSE http://mirror.ufms.br/tdf "Mirror UFMS" \
FALSE http://tdf.ufes.br "Mirror UFES" \
FALSE 192.168.0.187/tdf "Servidor Local" )
if [ $? == 0 ]; then
#3 Verificando el gestor de paquetes"
if [ -e "/bin/rpm" ]; then
gestorPaquetes=rpm
directorio=RPMS
else
gestorPaquetes=deb
directorio=DEBS
fi
#4 Verificando arquitetura del sistema"
if [ `getconf LONG_BIT` = "64" ]
then
plataforma=x86_64
plataforma2=x86-64
else
plataforma=x86
plataforma2=x86
fi
#5 Seleccionando el idioma local
idioma=$(zenity --list --radiolist --width=450 --height=500 \
--title="Seleccione el idioma local" \
--column="Selección" --column="Cod. Idioma" --column="Idioma" \
TRUE pt-BR "Portuguese (Brazil)" \
FALSE am "Amharic - አማርኛ" \
FALSE ar "Arabic - العربية " \
FALSE ast "Asturian" \
FALSE bg "Bulgarian (Bulsgaria) " \
FALSE bn-IN "Bengali, India" \
FALSE bn "Bengali" \
FALSE bo "Tibetan Standard - བོད་ཡིག" \
FALSE bs "Bosnian (Bosnia and Herzegovina)" \
FALSE ca "Catalan" \
FALSE cs "Czech" \
FALSE da "Danish" \
FALSE de "German" \
FALSE dz "Dzgkha" \
FALSE el "Greek" \
FALSE en-US "English United Stats" \
FALSE en-GB "English (United Kingdom)" \
FALSE en-ZA "English (South Africa)" \
FALSE eo "Esperanto" \
FALSE es "Spanish" \
FALSE et "Estian" \
FALSE eu "Basque" \
FALSE fi "Finnish" \
FALSE fr "French" \
FALSE gl "Galician" \
FALSE gu "Gujarati" \
FALSE he "Hebrew" \
FALSE hi "Hindi" \
FALSE hr "Croatian" \
FALSE hu "Hungarian" \
FALSE id "Indesian" \
FALSE is "Icelandic" \
FALSE it "Italian" \
FALSE ja "Japanese" \
FALSE ka "Georgian" \
FALSE km "Khmer" \
FALSE ko "Korean" \
FALSE lo "Lao" \
FALSE lt "Lithuanian" \
FALSE lv "Latvian" \
FALSE mk "FYRO Macedian" \
FALSE nb "Norwegian (Bokm?l)" \
FALSE ne "Nepali" \
FALSE nl "Dutch" \
FALSE nn "Norwegian Nynorsk" \
FALSE om "Oromo" \
FALSE pl "Polish" \
FALSE pt "Portuguese" \
FALSE ro "Romanian" \
FALSE ru "Russian" \
FALSE si "Sinhala; Sinhalese" \
FALSE sid "Sidamo" \
FALSE sk "Slovak" \
FALSE sl "Slovenian" \
FALSE sq "Albanian" \
FALSE sv "Swedish" \
FALSE ta "Tamil" \
FALSE tg "Tajik" \
FALSE tr "Turkish" \
FALSE ug "Uyghur" \
FALSE uk "Ukrainian" \
FALSE vi "Vietnamese (Viet Nam)" \
FALSE zh-CN "Chinese Simplified" \
FALSE zh-TW "Chinese Traditial" )
status=$?
if [ $status = 0 ]
then
while true
do
resp=$(zenity --password --text "Ingrese su contraseña" --title "Autenticación")
#5.1 Pega a senha de login gráfico
senha=$(echo "$resp" | cut -f1 -d'|')
(
echo "1" ; sleep 1
echo "# Creando directorios" ; sleep 1
#5.2 # Passa a senha
echo $senha | sudo -S -u root zenity --info --width=300 --height=60 --text "Iniciando instalación\Guarde los trabajos abiertos en libreoffice y haga clic en OK"
if ! [ -e /usr/bin/notify-send ]; then
if [ -e /usr/bin/dnf ]; then
sudo -S dnf install notify-send -y
elif [ -e /usr/bin/zypper ]; then
sudo -S zypper -n install notify-send
elif [ -e /usr/bin/zypper ]; then
sudo -S zypper -n install notify-send
elif [ -e /usr/bin/dpkg ]; then
sudo -S apt-get install notify-send -y
else
echo "Gestor no encontrado"
fi
else
echo "notify-send ya instalado"
fi
echo "5" ; sleep 1
echo "# Creando directorios" ; sleep 1
#5.3 # Creando directorio para bajar los paquetes de acuerdo con versión, gestor, arquitectura
mkdir -m 777 -p "/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma""
destino="/home/"$USER"/Descargas/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma""
#6 #Descargando LibreOffice
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Descargando paquetes'
echo "10" ; sleep 1
echo "# Descargando el paquete principal" ; sleep 1
wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz -P "$destino"
echo "20" ; sleep 1
echo "# Descargando el paquete de ayuda" ; sleep 1
wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma".tar.gz -P "$destino"
#7 # Verificando si hay necesidad de descarga el paquete de idioma, si se trata de inglés no es necesario.
if ! [ "$idioma" = "en-US" ]
then
echo "30" ; sleep 1
echo "# Descargando el paquete de idioma" ; sleep 1
wget -c "$servidor"/libreoffice/"$estadoversion"/"$vs"/"$gestorPaquetes"/"$plataforma"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma".tar.gz -P "$destino"
else
exit 1
fi
echo "40" ; sleep 1
echo "# Quitando versión anterior" ; sleep 1
#8 #Verificando si el paquete principal LibreOffice fue bajado para dar continuidad al proceso, en caso afirmativo se realiza un test del gestor de paquetes para desinstalar la versión anterior de Libre Office.
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Removiendo versión anterior '$comparar-versao-instalada'. !'
if [ -e "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz ]
then
if [ -e /usr/bin/dnf ]; then
sudo -S dnf remove openoffice* libreoffice* -y
elif [ -e /usr/bin/zypper ]; then
sudo -S zypper -n remove libreoffice[0-9]*
elif [ -e /usr/bin/zypper ]; then
sudo -S zypper -n remove openoffice[0-9]*
elif [ -e /usr/bin/dpkg ]; then
sudo -S apt-get remove --purge libreoffice[0-9]* -y
else
echo "LibreOffice não encontrado, continuar instalación"
fi
#9 # Descomprimimos los paquetes de LibreOffice
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Extrayendo paquetes'
echo "50" ; sleep 1
echo "# Descompactando el paquete principal" ; sleep 1
tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz -C /tmp
#10 # Verificando la necesidad de instalar paquete de idioma
if ! [ "$idioma" = "en-US" ]
then
echo "60" ; sleep 1
echo "# Descompactando el paquete de idioma" ; sleep 1
tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma".tar.gz -C /tmp
else
exit 1
fi
#11 # Instalación del paquete de ayuda
echo "70" ; sleep 1
echo "# Descompactando el paquete de ayuda" ; sleep 1
tar -xzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma".tar.gz -C /tmp
# Aqui se instala el paquete principal de LibreOffice
#12 #PAQUETE PRINCIPAL
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalando paquete principal'
tar -tzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz | cut -d '_' -f2 | uniq > /tmp/subversion
valorsubversion=$(</tmp/subversion)
echo "75" ; sleep 1
echo "# Instalando el paquete principal " ; sleep 1
if [ -e /usr/bin/dpkg ]; then
sudo -S dpkg -i /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"/"$directorio"/*
fi
#13 ##Instalación del PAQUETE DE IDIOMA
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalando paquetes de idioma'
if ! [ "$idioma" = "en-US" ]
then
tar -tzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz | cut -d '_' -f2 | uniq > /tmp/subversion
valorsubversion=$(</tmp/subversion)
echo "80" ; sleep 1
echo "# Instalando el paquete de idioma" ; sleep 1
if [ -e /usr/bin/dpkg ]; then
sudo -S dpkg -i /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_langpack_"$idioma"/"$directorio"/*
fi
else
exit 1
fi
#14 ##PAQUETE DE AYUDA
echo "90" ; sleep 1
echo "# Instalando el paquete de ayuda " ; sleep 1
##notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalando paquetes de ayuda!'
tar -tzf "$destino"/LibreOffice_"$vs"_Linux_"$plataforma2"_"$gestorPaquetes".tar.gz | cut -d '_' -f2 | uniq > /tmp/subversion
valorsubversion=$(</tmp/subversion)
rm subversion
if [ -e /usr/bin/dpkg ]; then
sudo -S dpkg -i /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
else
sudo -S rpm -Uvh /tmp/LibreOffice_"$valorsubversion"_Linux_"$plataforma2"_"$gestorPaquetes"_helppack_"$idioma"/"$directorio"/*
fi
else
exit 1
fi
#15 # Tratando los archivos utilizados, de momento enviando a un subdirectorio de descargas
echo "100" ; sleep 1
echo "# Instalación concluída " ; sleep 1
if [ -n "$(ls -A /opt/libreoffic* )" ]
then
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'Instalación concluída !'
else
notify-send -i libreoffice -t 50000 'LibreOffice '$vs'' 'No instalado !'
fi
1 2>/dev/null && exit
) |
zenity --progress --width=250 --height=100 \
--title="LibreOffice ha sido instalado" \
--text="Iniciando..." \
--percentage=0
if [ "$?" = -1 ] ; then
zenity --error \
--text="Instalación cancelada."
fi
zenity --question --default-cancel --no-wrap --text 'LibreOffice ha sido instalado \n Haga clic enContinuar para activar el monitor de atualización. \n O Salir si no quiere hacerlo' --ok-label="Sair" --cancel-label="OK"
# Salir si se presionó cancelar.
(( $? == 1 || $? != 1 )) &&
#Opción desactivada debido a la implantación del actualizador automático en el núcleo de LO
# zenity --question --text="Instalar el Monitor de Actualización" --ok-label="Si" --cancel-label="No"
# if [ $? = 0 ] ; then
# if ! [ -e /usr/bin/monitor-libreoffice.sh ]; then
# sudo -S wget https://raw.githubusercontent.com/ferreirarocha/install-libreoffice/master/monitor-libreoffice.sh -P /usr/bin/
# sudo -S chmod +x /usr/bin/monitor-libreoffice.sh
# crontab -l | grep -q 'bash /usr/bin/monitor-libreoffice.sh' && echo '0' > /tmp/CRON || echo '1' > /tmp/CRON
# if [[ $(cat /tmp/CRON) == "1" ]]; then
# (crontab -l ; echo "20 * * * * export DISPLAY=:0 && bash /usr/bin/monitor-libreoffice.sh") | crontab - ; exit 0
# else
# echo "Ya configurado" ; exit 0
# fi
# exit 0
# (( $? )) && exit
# else
# exit 0
# fi
# else
# exit 0
# fi
exit 0
done
exit 0
else
exit 0
fi
else
exit 0
fi
else
exit 0
fi
;;
1)
echo "Instalación Cancelada"
;;
-1)
echo "Algo inesperado ha ocurrido."
;;
esac

162
monitor-libreoffice.sh Normal file
View File

@ -0,0 +1,162 @@
#!/bin/sh
#data=date
exec >& >(tee -a /tmp/"$data"-logupdatelibreoffice.txt)
export PATH="/usr/local/sbin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
#export DISPLAY=0.0
curl http://linorg.usp.br/LibreOffice/libreoffice/stable/ > /tmp/version1
tail -4 /tmp/version1 > /tmp/version2
head -1 /tmp/version2 > /tmp/version3
cut -d= -f 5 /tmp/version3 > /tmp/version4
cat /tmp/version4 | cut -c 2-6 > /tmp/libreoffice-ultima-version
/usr/bin/libreoffice* --version > /tmp/version-instalada ; cat /tmp/version-instalada | cut -c 12-17 /tmp/version-instalada > /tmp/comparar-version-instalada
sed 's/\.//g' /tmp/libreoffice-ultima-version > /tmp/Ultimaversion
sed 's/\.//g' /tmp/comparar-version-instalada > /tmp/versionLocal
value=`cat /tmp/Ultimaversion`
value2=`cat /tmp/versionLocal`
if [ "$value" -gt "$value2" ];
then
#1 Variable definiendo que bajaremos LibreOffice del repositorio estable
## Escogiendo la versión de LibreOffice
#2 Aqui pudee ingresar una lista de tus servidoes preferidos para bajar LibreOFfice, con la posibilidad de ingresar un servidor local, ideal para ambientes empresariales
#En este caso utilicé el servidor de mi rede con IP 192.168.50.122/tdf
#Escoge el servidor para descargar LibreOffice."
# "http://tdf.c3sl.ufpr.br" "UFPR "
# "http://linorg.usp.br/LibreOffice" "USP "
# "http://ftp.unicamp.br/pub" "UNICAMP "
# "http://mirror.pop-sc.rnp.br/mirror/tdf" "PoP-SC "
# "http://mirror.nexcess.net/tdf" "Mirror nexcess"
# "http://mirror.ufms.br/tdf" "Mirror UFMS"
# "http://tdf.ufes.br/" "Mirror UFES"
# "http://mirror.unesp.br/tdf" "Mirror Unesp"
# "192.168.50.122/tdf" "Servidor Local "
#3 Probando el gestor de paquetes"
if [ -e /usr/bin/rpm ]; then
gestorPaquetes=rpm
directorio=RPMS
else
gestorPaquetes=deb
directorio=DEBS
fi
#4 Verificando arquitetura del sistema"
if [ `getconf LONG_BIT` = "64" ];
then
plataforma=x86_64
plataforma2=x86-64
else
plataforma=x86
plataforma2=x86
fi
#5 Escogiendo idioma local
servidor="192.168.0.187/tdf"
estadoversion="stable"
vs=`cat /tmp/libreoffice-ultima-version`
idioma="es"
# "Lista de idiomas diposnibles
# "pt-BR" "Portuguese (Brazil)"
# "am" "Amharic - አማርኛ"
# "ar" "Arabic - العربية "
# "ast" "Asturian"
# "bg" "Bulgarian (Bulsgaria) "
# "bn-IN" "Bengali, India"
# "bn" "Bengali"
# "bo" "Tibetan Standard - བོད་ཡིག"
# "bs" "Bosnian (Bosnia and Herzegovina)"
# "ca" "Catalan"
# "cs" "Czech"
# "da" "Danish"
# "de" "German"
# "dz" "Dzongkha"
# "el" "Greek"
# "en-US" "English United Stats"
# "en-GB" "English (United Kingdom)" \
# "en-ZA" "English (South Africa)"
# "eo" "Esperanto"
# "es" "Spanish"
# "et" "Estonian"
# "eu" "Basque"
# "fi" "Finnish"
# "fr" "French"
# "gl" "Galician"
# "gu" "Gujarati"
# "he" "Hebrew"
# "hi" "Hindi"
# "hr" "Croatian"
# "hu" "Hungarian"
# "id" "Indonesian"
# "is" "Icelandic"
# "it" "Italian"
# "ja" "Japanese"
# "ka" "Georgian"
# "km" "Khmer"
# "ko" "Korean"
# "lo" "Lao"
# "lt" "Lithuanian"
# "lv" "Latvian"
# "mk" "FYRO Macedonian"
# "nb" "Norwegian (Bokm?l)"
# "ne" "Nepali"
# "nl" "Dutch"
# "nn" "Norwegian Nynorsk"
# "om" "Oromo"
# "pl" "Polish"
# "pt" "Portuguese"
# "ro" "Romanian"
# "ru" "Russian"
# "si" "Sinhala; Sinhalese"
# "sid" "Sidamo"
# "sk" "Slovak"
# "sl" "Slovenian"
# "sq" "Albanian"
# "sv" "Swedish"
# "ta" "Tamil"
# "tg" "Tajik"
# "tr" "Turkish"
# "ug" "Uyghur"
# "uk" "Ukrainian"
# "vi" "Vietnamese (Viet Nam)"
# "zh-CN" "Chinese Simplified"
# "zh-TW" "Chinese Traditional" OFF 3>&1 1>&2 2>&3)
# status=$?
#touch /home/~/papeleraratemp
/usr/bin/zenity --question --text="La versión "$vs" está disponible, ¿desea actualizar?" --ok-label="Si" --cancel-label="No"
#xterm -title 'Actualizar LibreOffice' -e " read PASSWD ; echo "echo $PASSWD |pwd""
if [ $? = 0 ];
then
if [-e /usr/bin/dnf ]; then
xterm -e "bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír'
elif [-e /usr/bin/zypper ]; then
xterm -e "sudo bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír'
else
xterm -e "sudo bash /usr/bin/instalador-libreoffice.sh" && zenity --info --title "Atualización" --width=200 --height=100 --text 'LibreOffice fue actualizado haga clic en OK para salír'
fi
else
exit 1
fi
else
echo "tienes la versión más actual" > /var/log/backup.log
fi