Ola !
Juste un petit truc pour ceux qui veulent jouer un peu
Cela donne ça :
En gros si la date du dernier backup ne correspond pas à la date du jour je m’envoie une alerte
Donc un scénario avec en déclencheur provoqué : #end_backup#
Un bloc code suivi d’un bloc SI ou je teste le tag(ok) == « nok » pour envoyer à telegram avec
Donc si tt est OK, je ne suis pas prévenu…
Le bloc code :
// Ajout de samba.repo.php afin de pouvoir l'utiliser
require_once('/var/www/html/core/repo/samba.repo.php');
$backup = new repo_samba; // Nouvelle instance de la classe repo_samba
$backupliste = $backup->backup_list(); // Création du tableau avec les noms de backup
$listingBackup = "";
// Ajout d'un retour à la ligne pour chaque élément du tableau.
foreach($backupliste as $backupname){
$listingBackup .= $backupname . "\"\n\"";
}
// Liste des icônes
$iconebkp= '&' . '#128190';
$iconeattn= '&' . '#8252';
$tagsretour['#ok#'] = "nok";
$datejour = date("Y-m-d");
//$datejour = "2023-04-16"; // pour tester le nok
$save = $backupliste[0];
$date = substr($save, 21, 10); // On extrait la date du nom de fichier du dernier backup
$heure = substr($save, 32, 5); // On récupère heure
// Construction du message à envoyer
if ($date == $datejour) {
$tagsretour['#ok#'] = "ok";
}
else {
$message = $iconebkp . ' ' . $iconeattn. '<b> Backup </b>' . $iconeattn . ' ' .$iconebkp . "\n";
$message .= 'Dernier BKP le : ' . $date . ' à ' . $heure . "\n";
$message .= 'Vérifie tes logs !' . $iconeattn;
$tagsretour['#tosend#'] = $message;
}
// Ajout de log si log du scénario activé
$scenario->setLog('+----- Backup -----+');
$scenario->setLog('| Nom Dernier BKP : ' . $save);
$scenario->setLog('| Date Dernier BKP : ' . $date);
$scenario->setLog('| = Date du Jour : ' . $tagsretour['#ok#']);
$scenario->setLog('| Heure Dernier BKP: ' . $heure);
$scenario->setLog('| Listing Backups : ');
$scenario->setLog($listingBackup);
$scenario->setLog('| Message to send : ' . $message);
$scenario->setLog('+------------------+');
// sauvegarde des tags
$scenario->setTags($tagsretour);
Si votre scénario a les logs sur défaut, vous verrez tout ce que l’on récupère, c’est la section log du code.
Donc vous pouvez adapter pour recevoir si OK et le nom du fichier, ou recevoir tous les backups présents etc…
Voilà c’est sans prétention mais cela peut être utile pour certains.
Moi ça me permet de continuer à me former un peu à php et à l’api Jeedom !