Bash y Programas
Conjunto de programas bash, Python y referencias a programas para mantenimiento, descargar contenido y otros.
Respaldos de data de Docker
El Bash detiene los contenedores Docker y hace una copia de un directorio a otro.
#!/bin/bash
SOURCE_DIR=""
BACKUP_DIR=""
# Guardar lista de contenedores que estaban EN EJECUCIÓN
RUNNING_CONTAINERS=$(docker ps -q)
echo "Deteniendo contenedores Docker en ejecución..."
docker stop $RUNNING_CONTAINERS
sleep 5
mkdir -p "$BACKUP_DIR"
rsync -av --delete "$SOURCE_DIR/" "$BACKUP_DIR/"
echo "Reiniciando contenedores Docker que estaban en ejecución..."
if [ -n "$RUNNING_CONTAINERS" ]; then
docker start $RUNNING_CONTAINERS
fi
Imagenes a CBZ
Este programa Python es para copiar mover todas las imágenes dentro de la misma carpeta que el archivo y comprimirlo en un archivo cbz (formato de comic o manga).
import os
import zipfile
# Obtiene la ruta donde está este script Python
ruta_base = os.path.dirname(os.path.abspath(__file__))
print(f"Procesando carpetas en: {ruta_base}")
for carpeta in os.listdir(ruta_base):
ruta_carpeta = os.path.join(ruta_base, carpeta)
if os.path.isdir(ruta_carpeta):
# Crear archivo CBZ (ZIP renombrado)
nombre_cbz = f"{carpeta}.cbz"
ruta_cbz = os.path.join(ruta_base, nombre_cbz)
# Comprimir imágenes en CBZ
with zipfile.ZipFile(ruta_cbz, 'w', zipfile.ZIP_DEFLATED) as zipf:
for root, _, files in os.walk(ruta_carpeta):
for file in files:
ruta_imagen = os.path.join(root, file)
# Guarda las imágenes manteniendo la estructura relativa dentro del CBZ
zipf.write(ruta_imagen, os.path.relpath(ruta_imagen, ruta_carpeta))
print(f"Convertido: {nombre_cbz}")
print("¡Proceso completado!")
Script para eliminar archivos JPG y PNG
Elimina todas las imágenes de las subcarpetas a partir de la carpeta donde se ejecutó el bash
#!/bin/bash
# Ruta por defecto (directorio actual)
RUTA="${1:-.}"
if [ ! -d "$RUTA" ]; then
echo "Error: La ruta '$RUTA' no existe."
exit 1
fi
echo "Buscando archivos JPG y PNG en: $RUTA"
archivos=$(find "$RUTA" -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" \))
if [ -z "$archivos" ]; then
echo "No se encontraron archivos JPG o PNG."
exit 0
fi
echo "Se encontraron los siguientes archivos:"
echo "$archivos"
echo ""
read -p "¿Estás seguro de que quieres eliminar estos archivos? (s/N): " confirmacion
if [ "$confirmacion" = "s" ] || [ "$confirmacion" = "S" ]; then
echo "$archivos" | while read -r archivo; do
rm "$archivo"
echo "Eliminado: $archivo"
done
echo "Archivos eliminados correctamente."
else
echo "Operación cancelada."
fi