• Hola Invitado, nos gustaría recordarte que mantener este sitio en línea conlleva unos gastos mensuales y anuales.

    Sin vuestra ayuda mensual no es posible seguir en pie, no hay mucho más que contar.

    Si quieres colaborar para que sea posible por lo menos seguir en pie como comunidad, puedes hacerlo mediante alguno de los métodos disponibles en esta página: https://www.lonasdigital.com/donaciones/

    Recuerda que si necesitas invitación para acceder al foro, puedes solicitarla en nuestro Grupo de Telegram


crear script en raspberry

payback126

payback126

Amigo de Lonas
Registrado
29 Ene 2022
Mensajes
40
Reacciones
7
Puntos
22
Buenas noches, he instalado openvpn en la raspberry, todo bien hasta que apago la pi y la vuelvo a encender, ya no se conecta a la openvpn, tengo que volver a lanzar la orden para que vuelva a activar la vpn.
¿ Como puedo crear un script para que cuando reinicie la pi, se conecte a openvpn solo?
los script que he puesto para instalar oscam han sido los que venian en los manuales, por eso no tengo ni idea que comandos poner en el script, ni donde meter el archivo que tenga que crear.
muchas gracias, estoy empezando con esto de raspberry
 
que sistema opertivo usas
 
Buenas noches, he instalado openvpn en la raspberry, todo bien hasta que apago la pi y la vuelvo a encender, ya no se conecta a la openvpn, tengo que volver a lanzar la orden para que vuelva a activar la vpn.
¿ Como puedo crear un script para que cuando reinicie la pi, se conecte a openvpn solo?
los script que he puesto para instalar oscam han sido los que venian en los manuales, por eso no tengo ni idea que comandos poner en el script, ni donde meter el archivo que tenga que crear.
muchas gracias, estoy empezando con esto de raspberry

Yo para esto, ya sea una raspi, un deco o un vps/servidor dedicado.

Lo que suelo hacer primero siempre, es crear un script dentro de /etc/init.d vacío, genero un enlace simbólico a /etc/rc3.d y le asigno que se ejecute de los primeros, pero tampoco nada más iniciar el sistema, para así evitar petar otros procesos que aún se están lanzando en segundo plano.

Ejemplo, creas un script dentro de /etc/init.d llamado estado.sh (lo puedes llamar como quieras), te dejo un ejemplo para ncam, pero te va a servir de base para todo:

code_language.shell:
#! /bin/sh
# Script para arranque de servicios en /etc/init.d/
#

case "$1" in
start)
echo "Iniciando servicio... "
# Aquí comando a ejecutar para arrancar el servicio
/var/bin/ncam -b
sleep 2
;;
stop)
echo "Deteniendo servicio..."
# Aquí comando a ejecutar para detener el servicio
killall -9 ncam
;;
*)
echo "Modo de empleo: /etc/init.d/mi_script {start|stop}"
exit 1
;;
esac
exit 0

y luego le das permisos 755, te puedes asegurar por terminal ya de camino que en /etc/init.d no se quede ninguno sin permisos 755 y matas 2 pájaros de un tiro con:

Código:
chmod 755 /etc/init.d/* 2>/dev/null

luego generas el enlace simbólico a /etc/rc3.d por terminal con:

Código:
ln -s  /etc/init.d/estado.sh /etc/rc3.d/S60estado

Donde el S60 corresponden al tiempo de arranque, yo menos de 60 no pondría nunca.

Con esto ya tendrías un script operativo donde no sólo podrás iniciar servicios, si no que añadiéndole debajo del primer sleep una llamada a otro/s script/s, te permitirá que se ejecute/n al iniciar el sistema.

Ejemplo añadiendo un segundo script que por ejemplo tenemos en /var/script/ y es el encargado de levantar ncam cada vez que se caiga:

Seguramente no exista ningún directorio llamado script dentro de var, lo puedes crear por terminal con:

Código:
mkdir -p /var/script 2>/dev/null

Creamos el script dentro de ese nuevo directorio, yo qué sé... Por ejemplo ncamcpu.sh con el siguiente contenido:

code_language.shell:
#!/bin/sh

max_ncam=$(ps -C ncam -o user,pid,pcpu,pmem,vsz --no-headers | awk '{ if ( $3 > 80) print $2}')
if [ -z "$max_ncam" ]; then
    echo "ncam ok" #>> /tmp/killncam.log
    echo && date #>> /tmp/killncam.log
else
    echo && date #>> /tmp/killncam.log
    echo ncam killed
    kill -9 `ps ax | grep [C]omprobar_proceso.sh | grep -v grep | awk '{print $1}'` 2>/dev/null
    kill -9 $max_ncam
fi
sh /var/script/Comprobar_proceso.sh >> /dev/null 2>&1

exit 0

El # delante de >> /tmp/killncam.log evita generar un archivo log en /tmp, si lo quieres habilitar, puedes hacerlo quitándolo.

En este caso si te fijas, ese script lanza otro en segundo plano llamado Comprobar_proceso.sh que es el encargado de levantar el proceso activo, que vendría a ser así:

code_language.shell:
#!/bin/sh

PROCESO='ncam'
RUTA_PROCESO='/var/bin'
TIEMPO='15'
LOG=/tmp/test_$PROCESO.log
echo " ----- Iniciando test $PROCESO -----"
echo ''
echo ''
echo 'Vamos a comprobar el proceso activo'
echo ''
sleep 2
if pidof $PROCESO > /dev/null
then
echo ''
echo "$PROCESO activo"
else
echo "Alerta! $PROCESO detenido :( "
fi
date=`date`
echo "Iniciando test $PROCESO : $date" >> $LOG
while [ 1 ]
do
pidof $PROCESO > /dev/null
if [ $? -eq 0 ] ; then
echo 'Vamos a proceder a comprobar de nuevo el proceso activo'
echo ''
echo ""
else
date=`date`
echo "Reiniciando $PROCESO : $date" >> $LOG
echo ''
killall -9 $PROCESO
$RUTA_PROCESO/$PROCESO -b & 2>/dev/null
if [ $? -eq 0 ] ; then
echo "Ok! el servicio $PROCESO de nuevo operativo :) "
else
echo "Algo no ha funcionado. Por favor, intenta iniciarlo manualmente"
fi
fi
#Tiempo de comprobación si el servicio sigue activo, si no lo está se reinicia.
sleep $TIEMPO
done

exit 0

Luego le damos permisos 755 a todo lo que tengas en ese directorio con:

Código:
chmod 755 /var/script/* 2>/dev/null

O directamente solo a ese script con

Código:
chmod 755 /var/script/ncamcpu.sh

Y luego al otro:

Código:
chmod 755 /var/script/Comprobar_proceso.sh

Aquí ya tú mismo.

Ya sólo nos quedaría editar el script estado.sh añadiéndole una llamada al primer script debajo del primer sleep como dije al principio:

Código:
sh /var/script/ncamcpu.sh

Quedando finalmente este así:

code_language.shell:
#! /bin/sh
# Script para arranque de servicios en /etc/init.d/
#

case "$1" in
start)
echo "Iniciando servicio... "
# Aquí comando a ejecutar para arrancar el servicio
/var/bin/ncam -b
sleep 2
sh /var/script/ncamcpu.sh
;;
stop)
echo "Deteniendo servicio..."
# Aquí comando a ejecutar para detener el servicio
killall -9 ncam
;;
*)
echo "Modo de empleo: /etc/init.d/mi_script {start|stop}"
exit 1
;;
esac
exit 0

Repito, lo estoy enfocando a NCam, pero es aplicable a todo lo que quieras y de paso tendrías un script de arranque universal.

Yo aparte, prefiero crear un segundo script llamado estado2.sh dentro de /etc/init.d para asegurarme que el ncamcpu.sh se ejecute si o si, ya que puede ser que depende del sistema instalado te funcione sólo algunas veces. Así que ná, hago lo mismo que al principio:

Genero el script estado2.sh con su contenido:

code_language.shell:
#! /bin/sh
# Script para arranque de servicios en /etc/init.d/
#

sh /var/script/ncamcpu.sh

exit 0

Donde cómo te dije antes, yo este sólo lo que hago es forzar su inicio, de ahí que no tenga ningún start ni stop ni nada, este mismo te valdría para iniciar otros igualmente por fuerza.


Y a este último le hago un enlace simbólico con 80 segundos:

Código:
ln -s  /etc/init.d/estado2.sh /etc/rc3.d/S80estado2

Así si el otro no se ejecuta, este te lo va a iniciar seguro.

Se me ha ido la luz mientras estaba escribiendo el tocho, así que al final he tenido que resumir todo lo máximo posible, escribirlo todo 2 veces tiene tela marinera.

Espero que te sirva de ayuda a ti u a otro que lo necesite, en tu caso que lo que quieres es iniciar el openvpn, sería tan sencillo como localizar el script de arranque de este, que seguramente esté en /etc/init.d y generar un enlace simbólico a /etc/rc3.d o bien enfocar este que te pasé obviando la parte del segundo script en /var/script y cambiando el ejecutable de ncam por el de openvpn.

Un saludo
 
una pregunta, que comando usas para levantar la vpn?

Yo lo que hago es con el crontab. añades el comando y se levanta solo. algo como

@reboot (comando a ejecutar)
 
buenas noches y muchisimas gracias por contestar, sobre todo a @lonas por el tutorial que ha puesto.
Como he comentado antes, llevo una semana con esto de linux y raspberry, he conseguido instalar oscam (mi intencion es dejar ncam cuando este mas suelto en esto) porque hay mas tutoriales por internet, eso me va bien.
Yo tengo un vps donde tengo puesto openvpn como server, y ahora en la raspberry le he añadido el archivo "raspberry.ovpn" que cuando lo arranco manual, pues ya se me conecta al openvpn del vps. Digamos que la raspberry es un usuario mas de mi vps.
Lo que quiero es que cuando apago la raspberry no se conecta al vps, tengo que arrancarlo manualmente con el comando #openvpn --config rasberry.ovpn"
Me imagino pero no estoy seguro porque no sé de raspberry, que haciendo un script puedo hacer que la raspberry cuando encienda, pues ya me pueda conectar a la direccion que tiene en la vpn.
Lo que no se que comandos ni como hacerlo para crear ese script.
lo unico que me ha quedado claro por lo que he leido en la web es que hay que empezar con #!/bin/bash, pero ya despues no se que poner en ese archivo para que funcione
 
una pregunta, que comando usas para levantar la vpn?

Yo lo que hago es con el crontab. añades el comando y se levanta solo. algo como

@reboot (comando a ejecutar)

el que venia en el tutorial que lei es #openvpn --config "nombre del archivo.ovpn"
en mi caso #openvpn --config raspberry.ovpn
con eso me lo activa y ya puedo acceder a la raspberry con la direccion del vpn
 
el que venia en el tutorial que lei es #openvpn --config "nombre del archivo.ovpn"
en mi caso #openvpn --config raspberry.ovpn
con eso me lo activa y ya puedo acceder a la raspberry con la direccion del vpn

Si escribes eso en /etc/rc.local no necesitas script y también arranca automático.
 
buenas noches Instinto, he probado eso que me has dicho y nada, como no lo arranque manual no me conecta a opnvpn.
Tengo que entrar en al carpeta donde tengo el archivo, en mi caso /usr/local/bin.
voy a seguir probando a ver si doy con la tecla, ya os ire informando, jejeje
 
Buenos dias. Puedes intentar crear un daemon service en etc/systemd/system. Un ejemplo, creas un archivo llamado en este caso ncam.service, (en tu caso lo editas como levantes manualmente el vpn ) lo añades en etc/systemd/system y por terminal
sudo systemctl daemon-reload
sudo systemctl enable ncam.service
reboot

Como no me deja subirlo con la extension service lo he renombrado a txt, cambias el txt por service
 

Adjuntos

el que venia en el tutorial que lei es #openvpn --config "nombre del archivo.ovpn"
en mi caso #openvpn --config raspberry.ovpn
con eso me lo activa y ya puedo acceder a la raspberry con la direccion del vpn

si lo haces de esta forma, tienes que añadir la ruta donde esta el archivo rasberry.ovpn que es seguro lo que te falta. Quedaria de esta forma en cron

@reboot openvpn --config /home/ubuntu/raspberry.ovpn

deduciendo que la ruta del archivo raspberry.ovpn esta en la home del usuario ubuntu. Añades la ruta de donde este el archivo. Para asegurarte si entras por FileZilla a la raspberry te aparece la ruta exacta y es lo que has de añadir.

Añades y reinicias
 
otra cosa que te sera mas facil, si vas a usar la raspberry de cliente de ovpn y no de servidor, es instalar openvpn3
Con openvpn3 te gestiona mejor el servidor como cliente.
 
bueno pues por fin he dado con la tecla, lo primero daros las gracias a todos los que habeis contestado y me habeis ayudado.
al final ha sido mas facil de lo que pensaba, al buscar info de openvpnn3 he visto un hilo del foro de raspberry que hablaba de openvpn y he seguido los pasos.
Lo primero que tenia yo mal era el archivo que no le había cambiado la extensión de .ovpn a .conf, también la ubicación del archivo que tiene que ir en la carpeta /openvpn que esta en la carpeta /etc, una vez puesto el archivo bien en su ubicación le he mandado la orden por terminal
sudo systemctl enable openvpn@raspberry
raspberry es el nombre del archivo vpn que he creado.
Lo dicho muchas gracias a todos y ahora guardare una copia de seguridad y ya que estoy liado, probare a instalar ncam con los script que puso javi en el post
 
bueno pues por fin he dado con la tecla, lo primero daros las gracias a todos los que habeis contestado y me habeis ayudado.
al final ha sido mas facil de lo que pensaba, al buscar info de openvpnn3 he visto un hilo del foro de raspberry que hablaba de openvpn y he seguido los pasos.
Lo primero que tenia yo mal era el archivo que no le había cambiado la extensión de .ovpn a .conf, también la ubicación del archivo que tiene que ir en la carpeta /openvpn que esta en la carpeta /etc, una vez puesto el archivo bien en su ubicación le he mandado la orden por terminal
sudo systemctl enable openvpn@raspberry
raspberry es el nombre del archivo vpn que he creado.
Lo dicho muchas gracias a todos y ahora guardare una copia de seguridad y ya que estoy liado, probare a instalar ncam con los script que puso javi en el post

donde has encontrado esta información. Yo lo tengo instalado como cliente y no tengo cambiado el archivo .ovpn a .conf
 
Aqui os dejo un script de autoinstall wireguard vpn con 5 configurationes de clients para Systema Debian, Ubuntu

Código:
wget https://instinto.mooo.com:1974/osprey/wireguard.sh | bash

Las 5 configurationes de Clients la encuentras en la carpeta /opt/wg-config

@payback126
puedes usar el Script en tu VPS y en tu Raspberry. Luego de que este instalado en el Raspberry coje una de las 5 configurationes del VPS y la pones en el Raspberry en /etc/wireguard/wg0.conf (lo que lleva escrito el Raspberry en wg0 lo puedes borrar y poner la configuration de uno de los Clientes del VPS)
Una otra configuration del VPS la puedes poner en tu movil con la APP de Wireguard.
Cuando tengas eso, te puedo escribir lo que tienes que cambiar en la wg0.conf del VPS para poder con el Movil conectarte sobre el VPS con tu Raspberry o con cualquier aparato en la red de tu casa..
 

Temas similares

U
Respuestas
1
Visitas
1K
Arduramix
Arduramix
E
Respuestas
4
Visitas
2K
4car0
4car0
Respuestas
0
Visitas
2K
††LUCIFER††
X
Respuestas
1
Visitas
301
Javilonas
Javilonas
A
Respuestas
2
Visitas
1K
Aries
A
Atrás
Arriba