file2lftp
index | about | archive | charlas | docs | links
dot
|
git
|
img
|
plt
|
tty
|
uml
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:
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
Tal vez te interese leer
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