Scripts para nuestras distribuciones Raspberry
-
- Pi Alpha
- Mensajes: 15
- Registrado: 07 Ago 2016, 10:16
- Agradecido: 0
- Agradecimiento recibido: 0
Hola, muy intersante y seguro que irá muy bien, me podeis pasar algún sitio donde pueda informarme como introducir scripts en recalbox, soy novato y tengo el montaje del ventilador con el transistor pero no sé como introducir el script, gracias.
- Pirossi
- Pi Destroyer
- Mensajes: 503
- Registrado: 24 Ene 2017, 03:16
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Muy bueno este post!
Os aporto mi granito de arena esta vez con un test de velocidad(benchmark)
No confundir con (stresstest)
Velocidad de escritura y lectura , velocidad de cpu, frecuencias y temperatura de los componentes, velocidad de internet..
Foto del script sacada de la pagina oficial (no es mia la captura)

Link al proyecto:
https://github.com/aikoncwd/rpi-benchmark
Creador:Aikoncwd
Pagina:Github
El script hace uso de sysbench, lo autoinstala automaticamente al iniciar el script.
Aqui la descarga directa:
https://github.com/aikoncwd/rpi-benchma ... master.zip
Pd: probado en retropie, funciona muy bien, sobre todo si as echo overclock y quieres ver que es lo que as ganado en rendimiento real.
Os aporto mi granito de arena esta vez con un test de velocidad(benchmark)
No confundir con (stresstest)
Velocidad de escritura y lectura , velocidad de cpu, frecuencias y temperatura de los componentes, velocidad de internet..
Foto del script sacada de la pagina oficial (no es mia la captura)
Link al proyecto:
https://github.com/aikoncwd/rpi-benchmark
Creador:Aikoncwd
Pagina:Github
El script hace uso de sysbench, lo autoinstala automaticamente al iniciar el script.
Aqui la descarga directa:
https://github.com/aikoncwd/rpi-benchma ... master.zip
Pd: probado en retropie, funciona muy bien, sobre todo si as echo overclock y quieres ver que es lo que as ganado en rendimiento real.
Última edición por Pirossi el 08 May 2017, 12:53, editado 2 veces en total.

-
- Pi Alpha
- Mensajes: 19
- Registrado: 16 Dic 2016, 14:03
- Agradecido: 0
- Agradecimiento recibido: 0
Otro que usa Aikoncwd en su distribución es el bcmstat.sh
Lo he usado en mi raspberry pi 3 y me encanta!
Lo podeis echar un vistazo en el gith de Aikoncwd o en el del creador:
https://github.com/MilhouseVH/bcmstat
Descargar en releases o aquí:
https://github.com/MilhouseVH/bcmstat/archive/0.4.4.zip
Lo he usado en mi raspberry pi 3 y me encanta!
Lo podeis echar un vistazo en el gith de Aikoncwd o en el del creador:
https://github.com/MilhouseVH/bcmstat
Descargar en releases o aquí:
https://github.com/MilhouseVH/bcmstat/archive/0.4.4.zip
- Kike
- Administrador
- Mensajes: 2311
- Registrado: 13 May 2016, 18:53
- Ubicación: Islas Baleares - Menorca
- Agradecido: 47 veces
- Agradecimiento recibido: 175 veces
- Contactar:
Muy buena idea @Drakkar , se avecina un gran derroche de ingenio y creatividad
Aquí dejo un simple código que utilizo para hacer copias de seguridad diarias de MySQL (en combinación junto crontab)
Iré subiendo todo lo que tenga a mano, vamos todos a sacar artillería pesada!

Aquí dejo un simple código que utilizo para hacer copias de seguridad diarias de MySQL (en combinación junto crontab)
Código: Seleccionar todo
FILE=NOMBREARCHIVOBACKUP.sql.`date +"%Y%m%d"`
DBSERVER=127.0.0.1
DATABASE=NOMBREBASEDATOS
USER=NOMBREUSUARIO
PASS=CONTRASEÑA
unalias rm 2> /dev/null
rm ${FILE} 2> /dev/null
rm ${FILE}.gz 2> /dev/null
mysqldump --opt --user=${USER} --password=${PASS} ${DATABASE} > ${FILE}
gzip $FILE
echo "${FILE}.gz se ha creado:"
ls -l ${FILE}.gz
Si lo puedes soñar, lo puedes hacer
- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Aquí dejo un script que lo que hace es recorrer las carpetas desde el directorio actual y si encuentra algún paquete rar comprimido con contraseña de los de newpct1, accede a la url (que se encuentra en el fichero "CONTRASEÑA PARA DESCOMPRIMIR.txt"), recupera la contraseña y descomprime el rar.
Es necesario disponer de python3, y de la extensión rar file, que se instala:
$ sudo python3 pip install rarfile
=> newpct1_descomp.py
Es necesario disponer de python3, y de la extensión rar file, que se instala:
$ sudo python3 pip install rarfile
=> newpct1_descomp.py
- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Está basado en un script de un usario de Kodimania:Drakkar escribió:Script añadido al post principal. Muchas gracias @cpa . Esto va a ser de mucha utilidad.
https://www.kodimania.com/viewtopic.php?p=66282#p66282
Lo que pasa es que yo no uso Transmission y me gusta ejecutarlo a mano, así que lo adapté a mis necesidades.
Una cosa, es un script de python, y las tabulaciones son muy importantes. Veo que en el spoiler del principal, el código aparece centrado. Si se copia así, no va a funcionar... Debería mantener la identación del que he colgado yo...

- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Aquí pongo otro de los que uso... Sirve para controlar los ataques que recibe nuestro servidor SSH expuesto a internet.
Lo uso, entre otras cosas, para controlar que el fail2ban está funcionando correctamente...
¿Qué hace?:
=> Revisa el fichero /var/log/auth.log filtrando los mensajes SSH de ataques y los saca por pantalla. Para finalizar, también nos saca los ban y unban del fail2ban.log.
Aquí podéis ver un ejemplo real de salida:
Como podéis ver, estoy recibiendo un ataque real desde la ip 94.102.31.50. Ya llevo varios días sufriéndolo. A demás es más preocupante cuando mi servidor SSH está en un puerto totalmente diferente al habitual (no lo tengo en el 22). Por defecto, en el fail2ban lo tengo que se banee al quinto intento, y por lo que se puede ver en la salida, está funcionando. Pasadas 10 horas desbaeno la IP, pero vuelve a intentarlo... Así puedo pensarme si dejar baneado permanentemente esa IP o intentar denunciarla...
Al final veo como el fail2ban desbaneó la IP a las 14:45, y el primer ataque tras el desbaneo es de las 14:48. A las 15:06 se ha vuelto a banear. Quedará baneado hasta las 01:06 de esta madrugada. Mañana volveré a revisar cómo va el tema...
:idea:
Sin más preámbulos, aquí va el fichero python que lo controla...
python_ssh_attack.py
Por defecto, el fichero auth.log lo puede visualizar cualquiera, pero el contenido del fail2ban.log no, así que es necesario ejecutarlo o bien desde root o bien con un sudo. Para facilitarme esta tarea, he creado un sh asociado que lo que hace es ejecutar un sudo del código python... (vago que es uno)...
ssh_attack.sh
Deberéis adaptar la ruta donde tengáis el python_ssh_attack.py guardado. Este ssh_attack.sh yo lo tengo guardado en /usr/bin (dentro del path del root), así que haciendo un ssh_ y luego un tab, se me rellena el nombre del script y lo puedo ejecutar rápidamente...
Espero que os sea útil.
Lo uso, entre otras cosas, para controlar que el fail2ban está funcionando correctamente...
¿Qué hace?:
=> Revisa el fichero /var/log/auth.log filtrando los mensajes SSH de ataques y los saca por pantalla. Para finalizar, también nos saca los ban y unban del fail2ban.log.
Aquí podéis ver un ejemplo real de salida:
Código: Seleccionar todo
===============================================
Auth log =>
May 14 14:48:37 raspita sshd[12482]: Invalid user ts3 from 94.102.31.50
May 14 14:48:37 raspita sshd[12482]: Disconnecting: Too many authentication failures for invalid user ts3 from 94.102.31.50 port 40381 ssh2 [preauth]
May 14 14:53:02 raspita sshd[14597]: Invalid user ts3 from 94.102.31.50
May 14 14:53:02 raspita sshd[14597]: Disconnecting: Too many authentication failures for invalid user ts3 from 94.102.31.50 port 34881 ssh2 [preauth]
May 14 14:57:22 raspita sshd[16620]: Invalid user ts3 from 94.102.31.50
May 14 14:57:22 raspita sshd[16620]: Disconnecting: Too many authentication failures for invalid user ts3 from 94.102.31.50 port 50129 ssh2 [preauth]
May 14 15:01:46 raspita sshd[18838]: Invalid user ts3user from 94.102.31.50
May 14 15:01:46 raspita sshd[18838]: Disconnecting: Too many authentication failures for invalid user ts3user from 94.102.31.50 port 55282 ssh2 [preauth]
May 14 15:06:14 raspita sshd[20955]: Invalid user ts3user from 94.102.31.50
May 14 15:06:15 raspita sshd[20955]: Disconnecting: Too many authentication failures for invalid user ts3user from 94.102.31.50 port 59924 ssh2 [preauth]
===============================================
Fail2ban log =>
2017-05-14 14:45:50,583 fail2ban.actions[23816]: WARNING [ssh] Unban 94.102.31.50
2017-05-14 15:06:15,139 fail2ban.actions[23816]: WARNING [ssh] Ban 94.102.31.50
Al final veo como el fail2ban desbaneó la IP a las 14:45, y el primer ataque tras el desbaneo es de las 14:48. A las 15:06 se ha vuelto a banear. Quedará baneado hasta las 01:06 de esta madrugada. Mañana volveré a revisar cómo va el tema...
:idea:
Sin más preámbulos, aquí va el fichero python que lo controla...
python_ssh_attack.py
ssh_attack.sh
Espero que os sea útil.
- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Aquí traigo otro que hice ayer para un compañero del grupo de Telegram. Se trata de un script que lo que hace es formatear los nombres de los ficheros (generalmente multimedia) que vienen sin espacios pero diferenciados con minúsculas y mayúsculas. Es decir, imaginemos un fichero con este nombre:
"NombreDePelicula.mkv"
Pues bien, este script lo que hace es convertirlo a "Nombre De Pelicula.MKV"
El comando sería:
RenombraFiles <fichero> [-f]
El -f sirve para forzar al cambio de nombre sin preguntar. Se puede usar enlazado con un for para recorrer todos los ficheros de un directorio. Por ejemplo:
ficheros in *.mkv; do RenombraFiles.py "$ficheros"; done
Hay más detalles en el propio script. Espero que os sea útil. También lo podéis usar como base para adaptarlo a vuestras necesidades...
"NombreDePelicula.mkv"
Pues bien, este script lo que hace es convertirlo a "Nombre De Pelicula.MKV"
El comando sería:
RenombraFiles <fichero> [-f]
El -f sirve para forzar al cambio de nombre sin preguntar. Se puede usar enlazado con un for para recorrer todos los ficheros de un directorio. Por ejemplo:
ficheros in *.mkv; do RenombraFiles.py "$ficheros"; done
Hay más detalles en el propio script. Espero que os sea útil. También lo podéis usar como base para adaptarlo a vuestras necesidades...
-
- Pi Omega
- Mensajes: 84
- Registrado: 26 Dic 2016, 17:03
- Agradecido: 0
- Agradecimiento recibido: 0
Muy útil el tema. Gracias
Enviado desde mi MI 5s mediante Tapatalk
Enviado desde mi MI 5s mediante Tapatalk
- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Aquí traigo otro script. Se trata de una pequeña modificación de otro script solicitada por un compañero del grupo de Telegram. Básicamente lo que hace es encender el ventilador cuando llega a una temperatura máxima configurable, y no se apaga hasta que retorna a una temperatura de rebote también configurable.
Podemos poner que se encienda a los 45º y que no se apague hasta que no retorne nuevamente a los 40º.
Aquí lo tenéis:
Podemos poner que se encienda a los 45º y que no se apague hasta que no retorne nuevamente a los 40º.
Aquí lo tenéis:
Código: Seleccionar todo
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# Author: Edoardo Paolo Scalafiotti <edoardo849@gmail.com>
# Modificado por: CpA - Raspito's Family
import os
from time import sleep
import signal
import sys
import RPi.GPIO as GPIO
pin = 18 # The pin ID, edit here to change it
maxTMP = 45 # Temperatura máxima donde arrancará el ventilador
freshTMP = 40 # Temperatura de rebote, donde se apagará el ventilador
def setup():
GPIO.setmode(GPIO.BCM)
GPIO.setup(pin, GPIO.OUT)
GPIO.setwarnings(False)
return ()
def getCPUtemperature():
res = os.popen('vcgencmd measure_temp').readline()
temp = (res.replace("temp=", "").replace("'C\n", ""))
# print(“temp is {0}”.format(temp)) #Uncomment here for testing
return temp
def fanON():
setPin(True)
return ()
def fanOFF():
setPin(False)
return ()
def getTEMP(switch):
CPU_temp = float(getCPUtemperature())
# La temperatura alcanza MaxTemp
if CPU_temp > maxTMP and not switch:
fanON()
return True
# La temperatura es menor de MaxTMP, y menor de feshTMP, pero está encendido
elif switch and CPU_temp < freshTMP:
fanOFF()
return False
# Si el ventilador está encendido
elif switch:
return True
else:
return False
def setPin(mode):
GPIO.output(pin, mode)
return ()
try:
setup()
ventilador_on = False
while True:
ventilador_on = getTEMP(ventilador_on)
sleep(5) # Read the temperature every 5 sec, increase or decrease this limit if you want
except KeyboardInterrupt: # trap a CTRL+C keyboard interrupt
GPIO.cleanup() # resets all GPIO ports used by this program
- rbcheca
- Pi Alpha
- Mensajes: 18
- Registrado: 10 Sep 2016, 20:11
- Agradecido: 0
- Agradecimiento recibido: 0
Para hacer una imagen de la sd desde la raspberry y copiarla a un pendrive/disco duro.
Yo lo tengo puesto para que me haga una copia una vez a la semana y me borre la anterior
Me lo chivó fpaez.com
Me lo chivó fpaez.com
Última edición por rbcheca el 10 Jun 2017, 07:14, editado 1 vez en total.
- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Uy uy uy!, pero esto te tumba el sistema. Luego que haces, ¿reinicias?...rbcheca escribió:Para hacer una imagen de la sd desde la raspberry y copiarla a un pendrive/disco duro.Yo lo tengo puesto para que me haga una copia una vez a la semana y me borre la anterior
Me lo chivó fpaez.com
- rbcheca
- Pi Alpha
- Mensajes: 18
- Registrado: 10 Sep 2016, 20:11
- Agradecido: 0
- Agradecimiento recibido: 0
Si te digo la verdad me has pillado, pero....
Debe ser que no te lo tumba, he lanzado el script y mientras hacia la copia me he puesto a ver una peli con kodi y ningún problema, he hecho alguna otra prueba como acceder a las carpetas con WinSCP, crear carpetas etc, y todo bien, vamos que no se ha notado nada.
Luego ni reinicio ni nada, lo tengo puesto de madrugada y ni noto que hace la copia.
En su día también lo pensé, que si te desmonta las particiones se tumba el sistema pero debe ser que no, reconozco que es algo que se escapa a mis conocimientos escasos de linux
Debe ser que no te lo tumba, he lanzado el script y mientras hacia la copia me he puesto a ver una peli con kodi y ningún problema, he hecho alguna otra prueba como acceder a las carpetas con WinSCP, crear carpetas etc, y todo bien, vamos que no se ha notado nada.
Luego ni reinicio ni nada, lo tengo puesto de madrugada y ni noto que hace la copia.
En su día también lo pensé, que si te desmonta las particiones se tumba el sistema pero debe ser que no, reconozco que es algo que se escapa a mis conocimientos escasos de linux

- cpa
- Pi Beta
- Mensajes: 159
- Registrado: 10 Mar 2017, 23:18
- Agradecido: 0
- Agradecimiento recibido: 1 vez
Pues seguramente es porque no desmonta las unidades (no tiene el -f)...
¿has probado a recuperar una de las copias?...
No sé, yo este script lo veo un poco... "débil". A demás, no entiendo porqué usar Python para eso, si con un bash script es más que suficiente...
¿has probado a recuperar una de las copias?...
No sé, yo este script lo veo un poco... "débil". A demás, no entiendo porqué usar Python para eso, si con un bash script es más que suficiente...
- rbcheca
- Pi Alpha
- Mensajes: 18
- Registrado: 10 Sep 2016, 20:11
- Agradecido: 0
- Agradecimiento recibido: 0
Pues creo que tienes razón, he ejecutado sudo pv /dev/mmcblk0 | dd bs=1M of="Ruta de la imagen"cpa escribió:Pues seguramente es porque no desmonta las unidades (no tiene el -f)...
¿has probado a recuperar una de las copias?...
No sé, yo este script lo veo un poco... "débil". A demás, no entiendo porqué usar Python para eso, si con un bash script es más que suficiente...
y me ha creado la imagen, sin desmontar nada, esta imagen no la he recuperado así que no se, pero con el script completo si que he recuperado y me ha salvado el culo un par de veces.
La verdad que esto me supera, pero seguiré usándolo, ya sabes, si algo funciona, no lo toques... :victoria