Skip to content

Commandes par défaut de l'agent

Ce document décrit les scripts de commandes par défaut disponibles dans l'agent Alemca. Ces scripts sont situés dans le dossier /etc/alemca/system/commands/ et peuvent être exécutés à distance via la plateforme Alemca.

Vue d'ensemble

Les commandes par défaut permettent d'effectuer diverses opérations de maintenance, de surveillance et de configuration sur les équipements distant. Chaque script est écrit en Lua et utilise les modules de l'agent pour interagir avec le système.

Liste des commandes

autoreboot.lua

Configuration d'un reboot automatique

Note:Autoreboot ne marche que pour les devices Teltonika / OpenWRT (utilisation de l'api uci)

Ce script permet de configurer un reboot automatique d'une device une ou plusieurs fois par semaine. Il ne modifie pas les autres configurations de reboot possiblement déjà présentes sur la device.

Paramètres:

  • enable: Détermine si la configuration de reboot va être prise en compte ou pas. (par défaut: true)
  • hours: Les heures entre lesquelles vous souhaitez configurer le reboot. (par défaut: "0,6")
  • weekdays: Toutes les jours de la semaine où vous souhaitez reboot la device. (par défaut: un jour aléatoire de la semaine)

Exemple des paramètres

enable: true
hours: 14,16
weekdays: 6 -- pour plusieurs jours: 1,3,7
-- => chaque samedi (6) entre 14h et 16h

filesync.lua

Synchronisation de fichiers

Ce script permet de synchroniser des fichiers entre l'équipement local et la plateforme Alemca. Il ne marche pas sur les agents cloud (Docker)

Fonctionnalités

  • Synchronisation bidirectionnelle de fichiers
  • Support des chemins locaux (sur l'agent) et distants (sur le cloud)

Paramètres

  • path : Chemin au format "chemin_agent;chemin_cloud" pour spécifier les répertoires source et destination
  • direction: 'push' (agent -> Alemca) ou 'pull' (Alemca -> agent)

Utilisation

-- Format du paramètre path : "chemin_agent;chemin_cloud"
-- Exemple : "/etc/config;/edge_rootf/etc/config"

filesync_log.lua

Synchronisation des logs de l'agent

Script spécialisé pour la synchronisation des fichiers de logs de l'agent Alemca vers la plateforme alemca.

Fonctions

  • Détection automatique des fichiers de logs (agent-alemca.log*)
  • Upload vers la plateforme alemca via SFTP
  • Gestion des logs rotatés (agent-alemca.log.1, agent-alemca.log.2, etc.)
  • Nettoyage automatique après synchronisation

Répertoire surveillé : /var/log/

Pattern des fichiers : agent-alemca.log*

quick_netscan.lua

Scan rapide du réseau

Effectue un scan rapide du réseau local pour découvrir les équipements connectés.

Capacités

  • Détection automatique du réseau local
  • Scan par ping et ARP
  • Scan de ports optionnel
  • Timeout configurable
  • Découverte des services actifs

Paramètres configurables

  • network : Réseau à scanner (par défaut "auto" pour détection automatique)
  • timeout_ms : Timeout en millisecondes (par défaut 1000ms)
  • methods : Méthodes de scan ("ping,arp")
  • scan_ports : Active le scan de ports (true/false)
  • ports : Liste des ports à scanner ("22,80,443,1883")

reboot_agent.lua

Redémarrage de l'agent

Redémarre proprement l'agent Alemca en cours d'exécution.

Caractéristiques

  • Détection du PID de l'agent en cours
  • Démarrage d'une nouvelle instance
  • Arrêt propre de l'ancienne instance
  • Vérification du processus

Processus

  1. Récupération du PID actuel de agentAlemca
  2. Démarrage d'une nouvelle instance
  3. Attente de 2 secondes pour la stabilisation
  4. Arrêt de l'ancienne instance

reboot_device.lua

Redémarrage de l'équipement

Redémarre complètement l'équipement distant.

Fonctionnement

  • Exécution de la commande reboot système
  • Redémarrage immédiat de l'équipement

⚠️ Attention : Cette commande provoque un redémarrage complet de l'équipement.

snapshot.lua

⚠️ Attention : Cette commande n'est pas censée être declenchée à la main. Sa présence dans ce document est purement informative.

Capture d'état système

Script complexe qui capture un instantané complet de l'état du système et de la configuration.

Fonctions

  • Collecte des informations système
  • Informations SIM (pour équipements avec modem)
  • Supervision des fichiers (changement, création)
  • Exclusion de fichiers sensibles (credentials.yaml/yml) et des fichiers qui peuvent changer sans problème
  • Export au format JSON structuré

sync_ntp.lua

Synchronisation NTP

Synchronise l'horloge système avec un serveur NTP.

Opérations

  • Exécution de ntpd -gq pour synchronisation forcée
  • Affichage de l'heure actuelle après synchronisation
  • Gestion des erreurs de synchronisation

Processus

  1. Exécution de la commande NTP
  2. Vérification du succès
  3. Affichage de l'heure synchronisée

topology.lua

Scan de topologie réseau

Scanner avancé de topologie réseau qui crée des entités sur la plateforme Alemca pour visualiser la topologie du réseau.

Fonctions avancées

  • Scan complet du réseau local
  • Détection des services actifs
  • Création d'objets et services sur la plateforme cloud
  • Scan de ports étendus
  • Identification des protocoles
  • Retry automatique pour les API calls

Ports scannés par défaut

SSH (22), HTTP (80), HTTPS (443), Telnet (23), FTP (21), SMTP (25), DNS (53), SNMP (161), etc.

Configuration

  • Timeout par défaut : 1000ms
  • Max concurrent : 50 scans simultanés
  • Délai API : 0.3s entre les appels
  • Max retries : 3 tentatives

uci_command.lua

Commande UCI

Exécute une commande UCI (Unified Configuration Interface) sur les systèmes OpenWrt/LEDE.

Commande

  • Exécution de commandes UCI arbitraires
  • Paramètre de commande configurable

Paramètre

  • cmd : Commande UCI à exécuter

Exemple

-- Paramètre cmd = "show network"
-- Exécute : uci show network

upload.lua

Téléchargement de fichier

Télécharge un fichier depuis une URL vers l'équipement local.

Fonctions de téléchargement

  • Téléchargement via curl
  • URL et destination configurables

Paramètres

  • url : URL source du fichier
  • dest : Chemin de destination local

Exemple

-- url = "https://example.com/file.txt"
-- dest = "/tmp/downloaded_file.txt"