-
Notifications
You must be signed in to change notification settings - Fork 0
/
veeam-backup.py
129 lines (104 loc) · 3.39 KB
/
veeam-backup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/env python3
#
# Version 3.0-rc
# Created on 18.02.2023
backupID = ""
job_name = ""
try:
import os
except:
exit("please install the libraries 'os'")
else:
try:
import subprocess
except:
exit("please install the libraries 'subprocess'")
else:
try:
import datetime
from datetime import date
except:
exit("please install the libraries 'datetime'")
date_today = date.today()
date_yesterday = date_today + datetime.timedelta(days=-1)
time_now = datetime.datetime.now().strftime("%H:%M:%S")
try:
point = subprocess.run(
["veeamconfig point list --backupId " f'{backupID}' "| grep " f'{date_today}'],
shell=True,
capture_output=True,
)
if "Full" in str(point):
value = "Full"
elif "Increment" in str(point):
value = "Increment"
else:
exit("There was an error")
except:
exit("There was an error, please check if you have permissions for veeam.")
try:
session = subprocess.run(
["veeamconfig session list | grep " f'{job_name}' " | grep " f'{date_today}'],
shell=True,
capture_output=True,
)
session_yesterday = subprocess.run(
["veeamconfig", "session", "list", "|", "grep", f'{job_name}', "|", "grep", f'{date_yesterday}'],
shell=True,
capture_output=True,
)
except PermissionError:
exit("PermissionError: it seems like you don't have enough privileges to run veeamconfig")
except:
subprocess.call(
["echo", "2 Veeam-Backup Backup=0;;;0;1 it seems like veeam is not installed", f'{time_now}'],
stdout=True
)
exit()
else:
def main():
check_var = subprocess.run(
["veeamconfig", "session", "list", "|", "grep", f'{session}', "|", "grep", "Success"],
shell=True,
capture_output=True,
)
while True:
output = subprocess.run(
["veeamconfig", "session", "list"],
stdout=subprocess.PIPE
).stdout.decode("utf-8")
if job_name in output and "Running" in output:
subprocess.call(
["echo", "3 Veeam-Backup Backup=1;;;0;1 Backup is running", f'{time_now}'],
stdout=True
)
exit()
elif job_name in output and "Stopping" in output:
os.system("clear")
subprocess.call(
["echo", "2 Veeam-Backup Backup=0;;;0;1 Backup failed at:", f'{time_now}'],
stdout=True
)
exit()
break
if "Success" in str(session) and len(str(check_var)) > 2:
subprocess.call(
["echo", "0 Veeam-Backup Backup=1;;;0;1 ", f'{value}',
"Backup was successfully completed, check time:",
f'{time_now}'],
stdout=True
)
exit()
elif "Failed" in str(session):
subprocess.call(
["echo", "2 Veeam-Backup Backup=0;;;0;1 Backup failed, error time:", f'{time_now}'],
stdout=True
)
exit()
else:
subprocess.call(
["echo", "2 Veeam-Backup Backup=0;;;0;1 There was an error by running the script. error code x0001"],
stdout=True
)
exit()
main()