? Editing: Post:21.body Save Delete Cancel
Content changed Sign & Publish new content

Añadir a "fstab" un directorio remoto con ssh y montarlo al inicio del sistema. #TRISQUEL #MATE

el 31 de Octubre 2017

Abans de gens, instal·lem en el pc que farà de servidor el següent:

sudo apt-get install openssh-server

A continuació, crearem un directori en el pc local, i instal·lar uns paquets:

sudo mkdir /media/Pc_Central
sudo chown -R $USER /media/Pc_Central
sudo apt-get install sshfs

Ara, anem a fer que la conexiónremota per ssh no ens demani contrasenya. En l'ordinador local, teclegem:

ssh-copy-id $USER@ip.del.pc.remoto

Li donem a acceptar a tot. Comprovem que tenim accés:

ssh $USER@ip.del.pc.remoto

Li donem a acceptar a tot. Comprovem que tenim accés:
https://blog.desdelinux.net/ssh-sin-password-solo-3-pasos/

Seguim editant el nostre arxiu "fstab" local:

gksudo pluma /etc/fstab

Afegim la següent entrada:

usuari@ip.del.pc.remot:/directori/a/compartir  /media/Pc_Central  fuse.sshfs    auto,nonempty,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/usuario/.ssh/id_rsa,allow_other,default_permissions,uid=1000,gid=1000 0 0

Substituïm usuari , ip.del.pc.remot /directori/a/compartir per les nostres dades i guardem.

A continuació, afegim el nostre usuari al grup "fuse" editem l'arxiu:

sudo addgroup $USER fuse
gksudo pluma /etc/fuse.conf

Descomentem la línia i guardem l'arxiu:

user_allow_other

Bé, solament ens queda crear un arxiu:

pluma /home/$USER/.config/autostart/montar_Pc_Central.desktop

Introduïm el següent:

#!/usr/bin/env xdg-open
[Desktop Entry]
Type=Application
Exec=mount /media/Pc_Central
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[ca]=Montar Pc Central
Name=Montar Pc Central
Comment[ca]=
Comment=
Icon=network

Guardem l'arxiu i reiniciem, hauria d'aparèixer una icona del nostre directori remot muntat en iniciar el sistema. En cas de no voler que es munti a l'inici del sistema, amb no posar aquest últim arxiu prou, es vaig poder nontar des de l'explorador "caixa"

Leer más

Solución parcial al "flash" blanco en las transiciones de libreoffice impress.

el 29 de Mayo 2017

Actualmente, para tener las mayores prestaciones de la suite informática, se ha actualizado mediante ppa el paquete de ofimática, libreoffice.
Actualmente en la versión 5.3 he notado que, al efectuar las transiciones, aparecían unos molestos "flashes" de color blanco cada vez que se producía una transición de diapositiva.
Solo he conseguido eliminar estos errores en el medio de la presentación, cuando se inicia, aparece uno, como si se quisiera ajustar la presentación a la resolución.
Después de mucho probar, la "cuasi-solución" pasa por añadir los siguientes parámetros al archivo /etc/X11/xorg.conf

Section "Device"
  Identifier "Card"
  Driver     "intel"
  Option     "AccelMethod" "sna"  #para corregir el flash de impress
  Option     "TearFree"    "true"   #para corregir el flash de impress
  Option     "Monitor-HDMI1" "HannsG"   # monitor local
  Option     "Monitor-VGA1" "Proyector"    #cañón de proyección
EndSection

También es conveniente activar la casilla situada en Herramientas,opciones,ver: "usar Opengl en toda la aplicación"; así, no evitaremos unos molestos ecritorios en blanco cada vez que cambiamos de escritorio virtual.

Seguiré investigando.

Leer más

Creació d'uns scripts per emetre i rebre stream per la xarxa local.

el 24 de Abril 2017

Farem servir el vlc i audacious.
Script per part del servidor en /usr/local/bin/ amb permisos de execució:

Per l’emissió d'àudio + vídeo anomenat stream_audio_video.sh amb permisos d'execució:

#!/bin/sh
zenity --warning --text="Atenció! no tanqueu la consola." &
xterm -e "cvlc -vvv v4l2:///dev/video0:input=1 :v4l2-standard=PAL :input-slave=pulse://alsa_input.pci-0000_04_00.0.analog-stereo :live-caching=600  --sout '#transcode{vcodec=theo,acodec=vorb,vb=600,ab=94,scale=1}:standard{access=http,mux=ogg,dst=:8081/stream}'"

Per l'emissió no mes de àudio anomenat stream_audio.sh amb permisos d'execució:

#!/bin/sh
zenity --warning --text="Atenció! no tanqueu la consola." &
xterm -e "cvlc -vvv v4l2:///dev/video0:input=1 :v4l2-standard=PAL :input-slave=pulse://alsa_input.pci-0000_04_00.0.analog-stereo :live-caching=600  --sout '#transcode{vcodec=theo,acodec=vorb,vb=600,ab=160,scale=1}:standard{access=http,mux=ogg,dst=:8081/stream,select="novideo"}'"

El script amb zenity per triar que emetre anomenat stream.sh amb permisos d'execució:

#!/bin/sh
ACTION=`zenity --width=70 --height=158 --list --radiolist --text="Seleccionar" --title="Streaming" --column "Emitir" --column "Acció" TRUE Audio+Video FALSE Audio`
if [ -n "${ACTION}" ];then
case $ACTION in
  Audio+Video)
    stream_audio_video.sh
    ;;
  Audio)
    stream_audio.sh
    ;;
  esac
fi

Fem una entrada desktop per tenir una icona al menú: en /usr/share/applications afegim l’archivo stream.desktop amb el següent codi:

[Desktop Entry]
Encoding=UTF-8
Name=Streaming
Comment=Stream de Audio y Video
Exec=stream.sh
Icon=video
Terminal=false
Type=Application
Categories=Application;AudioVideo

De la part del receptor, en /usr/ local/bin afegim el següent arxiu anomenat amb permisos d'execució: streaming.sh

#!/bin/sh
ACTION=`zenity --width=100 --height=230 --list --radiolist --text="Seleccionar una acció" --title="Obrir Streaming" --column "Triar" --column "Acció" TRUE Sala\ August\ Video+Audio FALSE Sala\ August\ Audio FALSE Sala\ Eutiches\ Video+Audio FALSE Sala\ Eutyches\ Audio`
if [ -n "${ACTION}" ];then
case $ACTION in
  Sala\ August\ Video+Audio)
    cvlc http://192.168.1.***:8081/stream --video-title=August
    ;;
  Sala\ August\ Audio)
    audacious http://192.168.1.***:8081/stream
    ;;
  Sala\ Eutiches\ Video+Audio)
    cvlc http://192.168.1.***:8081/stream --video-title=Eutiches
    ;;
  Sala\ Eutiches\ Audio)
    audacious http://192.168.1.***:8081/stream
    ;;
  esac
fi

Fem una altre entrada desktop per tenir una icona al menú: en /usr/share/applications afegim l’archivo
streaming.desktop amb el següent codi

[Desktop Entry]
Version=1.0
Name=Streaming
Comment=Abre el visor de streaming de las salas
Exec=streaming.sh
Icon=network
Terminal=false
X-MultipleArgs=false
Type=Application
Categories=Network
Name[es_Es]=Streaming
Leer más

Configurar las teclas de volumen del teclado multimedia para apagar/encender subir/bajar el sonido en lxmusic (Distribución: Trisquel-Mini Belenos)

el 2 de Abril 2017

Lo primero, crearemos tres scripts en /usr/local/bin con permisos de ejecución ( $sudo chmod a+x ) . Los llamaremos así:
lxmusix_volume_toogle.sh

#!/bin/sh
LANGUAGE="en_US"

app_name="LXMusic"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-mute "$current_sink_num" toggle
        fi
    fi
done

lxmusic_volume_up.sh

#!/bin/sh
LANGUAGE="en_US"

app_name="LXMusic"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-volume "$current_sink_num" -- +3%
        fi
    fi
done

lxmusic_volume_down.sh

#!/bin/sh
LANGUAGE="en_US"

app_name="LXMusic"

current_sink_num=''
sink_num_check=''
app_name_check=''

pactl list sink-inputs |while read line; do \
    sink_num_check=$(echo "$line" |sed -rn 's/^Sink Input #(.*)/\1/p')
    if [ "$sink_num_check" != "" ]; then
        current_sink_num="$sink_num_check"
    else
        app_name_check=$(echo "$line" \
            |sed -rn 's/application.name = "([^"]*)"/\1/p')
        if [ "$app_name_check" = "$app_name" ]; then
            echo "$current_sink_num" "$app_name_check"

            pactl set-sink-input-volume "$current_sink_num" -- -3%
        fi
    fi
done

A continuación, debemos identificar las teclas del teclado, para ello abrimos una consola y tecleamos:

$xev | grep keysym

Acto seguido, pulsamos la tecla en cuestión y nos debería devolver lo siguiente (si coinciden con las teclas de volumen)

state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    state 0x0, keycode 121 (keysym 0x1008ff12, XF86AudioMute), same_screen YES,
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    state 0x0, keycode 123 (keysym 0x1008ff13, XF86AudioRaiseVolume), same_screen YES,
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,
    state 0x0, keycode 122 (keysym 0x1008ff11, XF86AudioLowerVolume), same_screen YES,

Abrimos con leafpad el siguiente archivo:

$leafpad $HOME/.config/openbox/trisquel-mini-rc.xml

Buscamos la entrada XF86AudioMute y sustituimos la entrada /usr/bin/volume.sh mute por /usr/local/bin/lxmusic_volume_toogle.sh.
El el caso de XF86AudioRaiseVolume y sustituimos la entrada /usr/bin/volume.sh up por /usr/local/bin/lxmusic_volume_up.sh.
Y en el caso de XF86AudioLowerVolume y sustituimos la entrada /usr/bin/volume.sh down por /usr/local/bin/lxmusic_volume_down.sh.

Para que los cambios sean efectivos, guardamos el archivo, y reiniciamos openbox.

$openbox --restart

Fuente: http://unix.stackexchange.com/questions/208784/command-line-per-application-volume-maybe-amixer-or-pactl

Leer más

Script de aviso mediante xmpp de la comprobación del estado de las aps del sistema WiFi

el 27 de Marzo 2017

Aviso via xmpp de que un AP-Wifi del Palau está caído.

Instalamos en el pc local:

sudo apt-get install sendxmpp

Creamos el archivo en el directorio personal .sendxmpprc con el usuario y password.

touch ~/.sendxmpprc
chmod 600 ~/.sendxmpprc
echo 'usuario@serverxmpp.loquesea mipassword' > ~/.sendxmpprc

Creamos el script. (Se supone que tenemos configurado el acceso a Zeroshel via ssh sin contraseña, como relaté en el post anterior)

#!/bin/bash 

#scrip creado por Suso Comesaña, para enviar un mensaje xmpp de caída de AP

#comunicamos con el servidor WIFI

if ssh root@192.168.1.*** ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP3-1, en las cabinas de traducción, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP3-1,en las cabinas de traducción, no está en línea!</b>" & & echo "El AP3-1,en las cabinas de traducción, no está en línea!" > aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP1-1, en la Sala Genius, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP1-1,en la Sala Genius, no está en línea!</b>" & & echo "El AP1-1,en la Sala Genius, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP1-2, en el mostrador de acreditaciones, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP1-2, en el mostrador de acreditaciones, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP1-3, en el guardarropa, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP1-3, en el guardarropa, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP0-1, en la planta 0, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP0-1, en la planta 0, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP0-2, en la cafetería, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP0-2, en la cafetería, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP0-3, en el escenario de la Sala August, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP0-3, en el escenario de la Sala August, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-1, en Sala Isis, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-1, en Sala Isis no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-2, en Sala V.I.P., está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-2, en Sala V.I.P., no está en línea!</b>" && echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  & 
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-3, en la placeta -1 -2, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-3, en la placeta -1 -2, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-4, en la Sala Minerva, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Minerva, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-5, en la Sala Medusa, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Medusa, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-6, en la Sala Eutyches, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Eutyches, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-1-7, en la Sala Forum, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Forum, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-1, en la Sala Trajano, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Trajano, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-2, en la zona de columnas de la -2, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-2-2, en la zona de columnas de la -2, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-3, en la zona de office de cocina, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-2-3, en la zona de office de cocina, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-4, en la Sala Adrià, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Sala Adrià, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-5, en la Sala Galvà, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-1-4, en la Galvà, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-2-6, en la Sala Escipió, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-2-6, en la Sala Escipió, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP0-4, en la Sala Tarraco, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP0-4, en la Sala Tarraco, no está en línea!</b>" && echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  & 
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-N1, (Lavabos) en Recinto Ferial, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-N1, (Lavabos) en el Recinto Ferial, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-N2, (Taller) en Recinto Ferial, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-N2, (Taller) en el Recinto Ferial, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-N3, (Recepción) en el Recinto Ferial, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-N3, (Recepción) en el Recinto Ferial, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

if ssh root@192.168.1.***  ping -I ETH01 -c1 10.0.0.** &>/dev/null; 
    then notify-send --icon=/usr/share/pixmaps/wifi.png 'El AP-OpenWRT, (Recepción) en la planta -1, está en línea' 
    else /usr/bin/zenity --error --text="<b>El AP-OpenWRT, (Recepción) en la planta -1, no está en línea!</b>" & & echo "El AP1-2, en el mostrador de acreditaciones, no está en línea!" >> aviso.txt  &
fi 

# enviamos el aviso por xmpp

sleep 5s

/usr/bin/sendxmpp -t -m aviso.txt manteniment@******.org 
/usr/bin/sendxmpp -t -m aviso.txt *******@beta.kontalk.net
exit 0

Guardamos el script en /usr/local/bin/ y le damos permisos de ejecución:

sudo chmod u+x /usr/local/bin/comprobar_aps

Editamos el fichero contrab para que sea recurrente el análisis

contrab -e

10 00 * * * manteniment /usr/local/bin/comprobar_aps

14 00 * * * manteniment /usr/local/bin/comprobar_aps
Leer más

Hacer que se apague/encienda el servidor wifi (ZeroShell) cuando se apague/encienda el pc_central

el 27 de Marzo 2017

Nos centramos primero en el script de apagado. Lo he hecho mediante ssh , por lo que primero debemos habilitar el acceso como root a zeroshell. Primero, accedemos mediante ssh al servidor wifi (se supone que la IP der servidor, si no se ha cambiado es 192.168.0.75)

~$ssh admin@192.168.0.75

Una vez dentro, vamos la siguiente carpeta y creamos los directorios y archivos:

>cd /Database
>mkdir startup
>mkdir .ssh
>cd startup
>touch rc.local
>vi rc.local

Introducimos los siguiente en el archivo (para introducir con el comando vi, hay que darle a tecla "Insert"):

#!/bin/sh
/bin/cp /Database/startup/sshd_config /etc/ssh/sshd_config
/bin/cp -Rp /Database/startup/.ssh /root/.ssh
echo "root:**********" | /usr/sbin/chpasswd
/sbin/service sshd restart
******* es la contraseña de admin de zeroshell

Guardamos ( "Esc" !wq para el editor vi) y lo hacemos ejecutable

>chmod +x rc.local

Creamos el archivo, si no lo hay :

>touch sshd_config
>vi sshd_config

E introducimos lo siguiente (para introducir con el comando vi, hay que darle a tecla "Insert"):

#       $OpenBSD: sshd_config,v 1.74 2006/07/19 13:07:10 dtucker Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/bin:/usr/bin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options change a
# default value.

#Port 22
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

# HostKey for protocol version 1
#HostKey /etc/ssh/ssh_host_key
# HostKeys for protocol version 2
#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_dsa_key

# Lifetime and size of ephemeral version 1 server key
#KeyRegenerationInterval 1h
#ServerKeyBits 768

# Logging
# obsoletes QuietMode and FascistLogging
#SyslogFacility AUTH
LogLevel VERBOSE

# Authentication:

#LoginGraceTime 2m
PermitRootLogin yes
#StrictModes yes
#MaxAuthTries 6

#RSAAuthentication yes
#PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#RhostsRSAAuthentication no
# similar for protocol version 2
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# RhostsRSAAuthentication and HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to no to disable s/key passwords
#ChallengeResponseAuthentication yes

# Kerberos options
KerberosAuthentication yes
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no
#AllowUsers admin
# GSSAPI options
GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
#UsePAM no

#AllowTcpForwarding yes
#GatewayPorts no
#X11Forwarding no
#X11DisplayOffset 10
#X11UseLocalhost yes
#PrintMotd yes
PrintLastLog no
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation yes
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS yes
UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10
#PermitTunnel no

# no default banner path
#Banner /some/path

# override default of no subsystems
Subsystem       sftp    /usr/local/libexec/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server

Guardamos el archivo ( ESC !wq para vi) y lo cerramos. Nos dirijimos ahora al otro directorio y creamos el archivo:

>cd .ssh
>touch id_rsa.pub

Aquí, mediante vi, introducimos las calves públicas de los esquipos que queramos que tengan libre acceso (están alojadas en /.ssh/id_rsa.pub) o sea:

> vi id_rsa.pub
"pegar el contenido del archivo local /.ssh/id_rsa.pub"
Guardar y salir (Esc !wq)

Ahora, via interfaz web de zeroshell, podemos programar que se ejecute el archivo al iniciarse el servidor wifi (http://192.168.0.75) vamos al apartado system, setup, scripts/cron y dentro de la opción "Pre boot script" introducimos:

/Database/startup/rc.local

Salvamos, reiniciamos el servidor, y teoricamente deberíamos tener acceso mediante ssh sin contraseña desde nuestro pc_cental. Comprobamos:

~$ssh root@192.168.0.75

y estamos dentro.

Ahora volvenos a nuestro script zeroshell_off.sh que lo ubicamos en /usr/local/bin de nuestro pc_central. El contenido del script, es el siguiente:

#!/bin/bash
ssh root@192.168.0.75 shutdown -h now
exit 0

Lo hacemos ejecutable y ahora vamos a crear otro archivo que nos permita el apagado simultáneo:

~$sudo chmod a+x zeroshell_off.sh
~$sudo su
:apt-get install zenity
:cd /usr/local/bin
:touch apagar.sh
:vi apagar.sh

Ahora introducimos ("insert") lo siguiente en el archivo:

#!/bin/sh
ACTION=`zenity --width=80 --height=272 --list --radiolist --text="Seleccionar una acció" --title="Aturar" --column "Triar" --column "Acció" TRUE Apagar FALSE Reiniciar FALSE Tancar\ Sessio FALSE Suspendre FALSE Hibernar FALSE Apagar\ Pantalla`
if [ -n "${ACTION}" ];then
case $ACTION in
  Apagar)
    dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop && /usr/local/bin/zeroshell_off.sh
    ;;
  Reiniciar)
    dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
    ;;
  Tancar\ Sessio)
    pkill -SIGTERM -f lxsession
    ;;
  Suspendre)
   dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
   ;;
  Hibernar)
   dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
   ;;
  Apagar\ Pantalla)
   xset dpms force off
   ;;
  esac
fi

Lo guardamos (Esc !wq) y lo hacemos ejecutable:

~$sudo chmod a+x /usr/local/bin/apagar.sh

Y ahora, lo podemos añadir como entrada al wbar ( o en su defecto crear un archivo .desktop )

Vamos ahora con el script zeroshell_on.sh . Primeramente, en el servidor Zeroshel, tenemos que tener habilitado en la bios, el encendido remoto, para ello buscamos en la bios del server un apartado que se parezca a "Wake on Lan" o "boot remote" o algo por el estilo y lo activamos. Despues, buscamos la mac de la tarjeta de red que está conectada a la red del pc_central, no la del wifi.

Creamos el archivo tambien en /usr/local/bin

~$cd /usr/local/bin
~$sudo su
:apt-get install wakeonlan
:touch zeroshell_on.sh
:vi zeroshell_on.sh

e introducimos:

#!/bin/bash
wakeonlan 00:00:00:00:00:00  #introduce aquí la dirección mac 
exit 0

Guardamos el archivo (Esc !wq) lo hacemos ejecutable:

:chmod a+x  /usr/local/bin/zeroshell_on.sh

Ahora editamos el archivo siguiente:

:vi /etc/rc.local

E introducimos ( tecla "insert") antes de la línea "exit 0" lo siguiente:

/usr/local/bin/zeroshell_on.sh

Guardamos ( Esc !wq)

A continuación, reniciamos nuestro pc_central deberíamos observar como se paga el servidor wifi, y se vuelve a encender.

Salud!

Leer más

Instalar pip3 en openwrt

el 10 de Febrero 2017

Hola, hay un script que facilita todo el proceso.
A todo esto, tenemos que instalar openwrt en un router con capacidad de añadir una memoria usb e instalar como overlay:
https://wiki.openwrt.org/doc/howto/extroot
Una vez aumentada la capacidad de nuestro router, procedemos a lo siguiente, una vez hemos accedido por ssh:

cd /mnt
opkg install wget python3-base python3-light
wget http://download.rsdev.16mb.com/OpenWrt/Scripts/installPIP.sh
chmod +x ./installPIP.sh
./installPIP.sh

Esto debería automatizar todo el proceso.

Una vez realizado esto, es conveniente instalar virtualenev.

pip3 install virtualenv

Debemos reinicializar el router para borrar los archivos temporales que se van generando.

Una vez instalado, podemos crear nuestro entorno virtual

cd /mnt
virtualenv env

Ahora ya podemos activar el entorno

cd /env
source bin/activate
(env) root@OpenWrt:

Si queremos desactivarlo:

(env) root@OpenWrt: deactivate

Con este entorno, ya podemos instalar y ejecutar programas como

pip3 install gnusrss jabbergam

Salud!

Leer más

Congratulations!

el 31 de Mayo 2015

Your zeronet blog has been successfully created!

Leer más
Nueva entrada

Title

21 hours ago · 2 min read ·
3 comments
Body
Leer más

Title

21 hours ago · 2 min read

0

user_name1 day ago
Contestar
Body

Blog de Manteniment

Blog del departament de Manteniment del Palau Firal i de Congressos de Tarragona.

Seguir en NewsfeedSiguiendo

Últimos comentarios:

This page is a snapshot of ZeroNet. Start your own ZeroNet for complete experience. Learn More