#+LINK_HOME: index.html
#+INCLUDE: header.org
<video id="video" controls width="720" height="406" autoplay loop background="#000000" preload>
<source src="videos/file2lftp-1920x1080.mp4" type="video/mp4">
</video>
Publicar rápido! #
Hace un par de días, la CI 1 de GitLab 2 se rompió mal y por
ello mi blog 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, 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!
Dónde esta la magia? #
Resulta que uso pass
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 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/ |
un alias para todo! #
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:
1
2alias file2blg='FTP_HOST=osiux.com FTP_USER=osirisosiux file2lftp'
3alias file2img='FTP_HOST=osiux.com FTP_USER=osirisosiux FTP_RDIR=web/img file2lftp'
4alias file2tmb='FTP_HOST=osiux.com FTP_USER=osirisosiux FTP_RDIR=web/tmb file2lftp'
5alias file2pub='FTP_HOST=pub.osiux.com FTP_USER=osirispub file2lftp'
6
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
Tal vez te interese leer #
wifi2qr
- git auto commit and push using crontab.org
- enviar notificaciones automáticas usando
ntfy.sh
- alinear textos en columnas
- historial infinito en
bash
- Semana Negra - Sobrevivir en la shell
ChangeLog #
2023-06-14 01:33
actualizar imagen OpenGraph file2lftp2023-06-14 01:24
reemplazar gif por mp4 en file2lftp2023-06-14 00:26
agregar video file2lftp-640x360 en file2lftp2023-06-13 23:55
agregar file2lftp