💾 Archived View for sl1200.dystopic.world › art › visitas_capsula_gemini.gmi captured on 2023-12-28 at 15:24:03. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
2022-11-01
#bash #gemini #agate #journalctl
Para calcular el número de visitas se procede a crear un archivo de logs filtrando el resultado de journalctl, el número de visitas será el número de líneas de ese archivo.
En mi caso tengo Debian 10 en mi VPS, lo primero que debes comprobar es si el comando journalctl te da resultados o te saca un error por falta de permisos. Si no tienes los permisos necesarios deberás añadir tu usuario al grupo systemd-journal con el comando:
sudo usermod -a -G systemd-journal usuario
Este sería el script bash, para un servidor Agate:
#!/bin/bash #Creo el archivo logvisitas si no existe if [ ! -f home/usuario/bin/visitas/logvisitas ]; then touch /home/usuario/bin/visitas/logvisitas fi #Extraigo cada minuto con journalctl todas las líneas en las que aparecen archivos servidos por Agate, que se corresponden con las líneas en las que aparece "agate-server", eliminando después las líneas correspondientes a lecturas automáticas que tengo programadas para la creación del feed atom.xml. journalctl --since "1 min ago" | grep 'agate-server' | sed '/feed.gmi/d' | sed '/atom.xml/d' | cut -d " " -f 12 | sed 's/\"//g' | cut -b 31- >> /home/usuario/bin/visitas/logvisitas #Calculo el número de líneas, que debe corresponderse con las visitas v=$(less /home/usuario/bin/visitas/logvisitas | wc -l) numvisitas="Visitas: $v" #Publico en la línea 24 del index.gmi el número de visitas sed -i "24c\\$numvisitas" /home/usuario/gemini/content/index.gmi #Pongo un límite al número de visitas para que el archivo logvisitas no sea muy grande if (( v > 300000 )); then > /home/usuario/bin/visitas/logvisitas fi
Deberás hacerlo ejecutable con el comando "chmod +x" y después programar su ejecución cada minuto o el tiempo que estimes necesario con "crontab -e". También se podría crear un servicio con systemd y dejar el script en ejecución contínua con pausas con "sleep".
He puesto un límite de 300.000 visitas, si veo que se supera se puede optar por prescindir de un archivo de logs con las visitas guardando únicamente la variable "v" en un archivo y sumando las visitas cada vez que se ejecute el script.
El contenido del archivo en el que almacenes las visitas gemini quedaría: