On passe bcfg2-report dans /usr/scripts
This commit is contained in:
parent
b4a9746ffc
commit
6608a45f10
1 changed files with 44 additions and 0 deletions
44
bcfg2/bcfg2-report.py
Executable file
44
bcfg2/bcfg2-report.py
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
""" Envoie un mail avec la liste des serveurs qui ne sont pas synchro avec bcfg2.
|
||||||
|
|
||||||
|
N'affiche que ceux qui datent d'aujourd'hui, hier ou avant-hier
|
||||||
|
(pour ne pas avoir les vieux serveurs qui traînent).
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import time
|
||||||
|
import datetime
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
unjour = datetime.timedelta(1)
|
||||||
|
|
||||||
|
aujourdhui = datetime.date(*time.localtime()[:3])
|
||||||
|
hier = aujourdhui - unjour
|
||||||
|
avanthier = aujourdhui - unjour*2
|
||||||
|
|
||||||
|
def get_dirty():
|
||||||
|
"""Récupère les hosts dirty récents."""
|
||||||
|
proc = subprocess.Popen(["/usr/sbin/bcfg2-reports", "-d"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # | sort
|
||||||
|
out, err = proc.communicate()
|
||||||
|
if err:
|
||||||
|
print(err, file=sys.stderr)
|
||||||
|
if proc.returncode != 0:
|
||||||
|
return (False, out)
|
||||||
|
out = [l for l in out.split("\n") if any([date.strftime("%F") in l for date in [aujourdhui, hier, avanthier]])]
|
||||||
|
out.sort()
|
||||||
|
return True, "\n".join(out)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
success, hosts = get_dirty()
|
||||||
|
if not success:
|
||||||
|
print(hosts, file=sys.stderr)
|
||||||
|
exit(1)
|
||||||
|
debug = "--debug" in sys.argv
|
||||||
|
sys.path.append("/usr/scripts/")
|
||||||
|
import utils.sendmail
|
||||||
|
utils.sendmail.sendmail("root@crans.org", "roots@crans.org", u"Serveurs non synchronisés avec bcfg2", hosts, more_headers={"X-Mailer" : "bcfg2-reports"}, debug=debug)
|
Loading…
Add table
Add a link
Reference in a new issue