file2lftp
Hace un par de días, la CI ^1[1] de GitLab ^2[2] se rompió mal y por ello mi blog ^3[3] dejó de auto-regenerarse automáticamente luego de un git push
.
Entonces ahora tengo 2 opciones, o me pongo a ver porqué se rompió la CI (parece ser que superé el límite de espacio en disco) o mitigo de alguna forma rápida sin mucho esfuerzo?
lftp
es la posta!
Recordé que hace un par de años había escrito un script para realizar mirrors de sitios webs usando lftp
^4[4], que es un cliente FTP pensado para usar desde scripts.
Me tomó un par de minutos adaptarlo y funciona muy rápido!
La idea es simple, estando en un directorio, quiero enviar un archivo a un sitio y no quiero tipear mucho mas que el comando y el nombre del archivo a enviar, simplemente tipear:
# file2lftp index.html index.html => osiux.com:web/index.html . . . . . 9154 bytes transferred
Listo! ya está donde debe, sin definir el server, ni el user ni la pass de conexión!
Resulta que uso pass
^5[5] (Password Store) y las credenciales ya las tenía definidas de ante-mano, es decir que en la ruta ftp/osiux.com/osirisosiux
esta almacenada la contraseña de manera cifrada usando GPG.
Ahora bien, cómo sabe file2lftp
^6[6] dónde buscar la contraseña?
Fácil, al iniciar el script obtiene el hostname del servidor remoto usando el hostname del equipo donde estoy, todos mis equipos son parte del dominio osiux.com
sin importar en qué lugar físico estén situados, entonces solo hay que buscar algún directorio que se llame osiux.com
dentro de ~/.password-store
y eso hace el script.
Al encontrar el directorio, busca el primer archivo .gpg
y se queda con el nombre del archivo sin la extension, en este caso osirisosiux
Luego verifica que el archivo especificado exista y genera la línea de comandos a ejecutar.
Obviamente se puede especificar mediante variables otra opciones:
┌────────────┬───────────────────────────┬───────────────┐ │ *variable* │ *default* │ *example* │ ╞════════════╪═══════════════════════════╪═══════════════╡ │ `FTP_HOST` │ `hostname -d` │ `osiux.com` │ ├────────────┼───────────────────────────┼───────────────┤ │ `FTP_USER` │ `find -file -iname *.gpg` │ `osirisosiux` │ ├────────────┼───────────────────────────┼───────────────┤ │ `FTP_RDIR` │ `web` │ `web` │ ├────────────┼───────────────────────────┼───────────────┤ │ `FTP_LDIR` │ `$PWD` │ `~/blog/` │ └────────────┴───────────────────────────┴───────────────┘
Aprovechando el uso de alias
definí 4 nuevos comandos para agilizar la tareas y contar con casos específicos para otros directorios y/o sitios:
alias file2blg='FTP_HOST=osiux.com FTP_USER=osirisosiux file2lftp' alias file2img='FTP_HOST=osiux.com FTP_USER=osirisosiux FTP_RDIR=web/img file2lftp' alias file2tmb='FTP_HOST=osiux.com FTP_USER=osirisosiux FTP_RDIR=web/tmb file2lftp' alias file2pub='FTP_HOST=pub.osiux.com FTP_USER=osirispub file2lftp'
file2img
publicar en osiux.com/img
# file2img img/vim-autosave-backup.png img/vim-autosave-backup.png => osiux.com:web/img/img/vim-autosave-backup.png . . . . . 1792644 bytes transferidos en 6 segundos. (278.4 KiB/s)
file2tmb
publicar en osiux.com/tmb/
# file2tmb tmb/vim-autosave-backup.png tmb/vim-autosave-backup.png => osiux.com:web/tmb/tmb/vim-autosave-backup.png . . . . . 306573 bytes transferidos en 1 segundo. (226.6 KiB/s)
file2pub
publicar en pub.osiux.com
# file2pub index.html index.html => pub.osiux.com:web/index.html . . . . . 376 bytes transferred
wifi2qr
[7]
ntfy.sh
[9]
bash
[11]
2023-06-14 01:33
[13] actualizar imagen OpenGraph file2lftp
2023-06-14 01:24
[14] reemplazar gif por mp4 en file2lftp
2023-06-14 00:26
[15] agregar video file2lftp-640x360 en file2lftp
2023-06-13 23:55
[16] agregar file2lftp
=> 1: https://docs.gitlab.com/ee/ci/ | 2: https://docs.gitlab.com/omnibus/installation/ | 3: https://osiux.com/ | 4: https://github.com/lavv17/lftp | 5: https://www.passwordstore.gmi/ | 6: https://gitlab.com/osiux/bin-bash-utils/-/raw/develop/file2lftp | 7: 2023-06-06-wifi2qr.gmi | 8: 2023-02-27-git-auto-commit-and-push-using-crontab.gmi | 9: 2023-02-15-send-automatic-notifications-using-ntfy.gmi | 10: 2021-04-05-align2col.gmi | 11: 2021-03-17-historial-infinito-en-bash.gmi | 12: 2014-04-28-semana-negra.gmi | 13: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/e28c7c0b18d5c81d2923aaa438b213b9e173038b | 14: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/12fb883403c8f0f7f318da73a713da498b831601 | 15: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/51ec4fdfe7a5721756593c322cfb6d3380e14251 | 16: https://gitlab.com/osiux/osiux.gitlab.io/-/commit/757be0ca947351bff7dce144d3f94530df74ccac This content has been proxied by September (ba2dc).Proxy Information
text/gemini;lang=es_AR