mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2025-12-07 09:36:05 -08:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e3f14dd9d | ||
|
|
dbe0a0548b | ||
|
|
e8f723d985 | ||
|
|
cc50d0f75e | ||
|
|
a473845242 | ||
|
|
bda526b202 | ||
|
|
9057e41ff8 | ||
|
|
75bb53fdd1 | ||
|
|
e7ebd9bab5 | ||
|
|
30aeab305d | ||
|
|
3e6d9847be | ||
|
|
3c34c822e7 | ||
|
|
424cf11752 |
@@ -1,29 +1,31 @@
|
|||||||
VERSION = '2.51'
|
VERSION = '2.55'
|
||||||
VERSION_YEAR = '2021'
|
VERSION_YEAR = '2021'
|
||||||
VERSION_DATE = '2021-01-11'
|
VERSION_DATE = '2021-01-13'
|
||||||
|
|
||||||
DB_PATH = '/home/pi/pialert/db/pialert.db'
|
DB_PATH = '/home/pi/pialert/db/pialert.db'
|
||||||
LOG_PATH = '/home/pi/pialert/log'
|
LOG_PATH = '/home/pi/pialert/log'
|
||||||
VENDORS_DB = '/usr/share/arp-scan/ieee-oui.txt'
|
VENDORS_DB = '/usr/share/arp-scan/ieee-oui.txt'
|
||||||
PA_FRONT_URL = 'http://pi.alert/deviceDetails.php?mac='
|
PA_FRONT_URL = 'http://pi.alert/deviceDetails.php?mac='
|
||||||
PRINT_LOG = False
|
PRINT_LOG = False
|
||||||
|
|
||||||
SMTP_SERVER = 'smtp.gmail.com'
|
SMTP_SERVER = 'smtp.gmail.com'
|
||||||
SMTP_PORT = 587
|
SMTP_PORT = 587
|
||||||
SMTP_USER = 'user@gmail.com'
|
SMTP_USER = 'user@gmail.com'
|
||||||
SMTP_PASS = 'password'
|
SMTP_PASS = 'password'
|
||||||
|
|
||||||
REPORT_MAIL = False
|
REPORT_MAIL = False
|
||||||
REPORT_FROM = 'Pi.Alert <' + SMTP_USER +'>'
|
REPORT_FROM = 'Pi.Alert <' + SMTP_USER +'>'
|
||||||
REPORT_TO = 'user@gmail.com'
|
REPORT_TO = 'user@gmail.com'
|
||||||
|
|
||||||
DDNS_ACTIVE = False
|
# QUERY_MYIP_SERVER = 'https://diagnostic.opendns.com/myip'
|
||||||
DDNS_DOMAIN = 'your_domain.freeddns.org'
|
QUERY_MYIP_SERVER = 'http://ipv4.icanhazip.com'
|
||||||
DDNS_USER = 'dynu_user'
|
DDNS_ACTIVE = False
|
||||||
DDNS_PASSWORD = 'A0000000B0000000C0000000D0000000'
|
DDNS_DOMAIN = 'your_domain.freeddns.org'
|
||||||
DDNS_UPDATE_URL = 'https://api.dynu.com/nic/update?'
|
DDNS_USER = 'dynu_user'
|
||||||
|
DDNS_PASSWORD = 'A0000000B0000000C0000000D0000000'
|
||||||
|
DDNS_UPDATE_URL = 'https://api.dynu.com/nic/update?'
|
||||||
|
|
||||||
PIHOLE_ACTIVE = False
|
PIHOLE_ACTIVE = False
|
||||||
PIHOLE_DB = '/etc/pihole/pihole-FTL.db'
|
PIHOLE_DB = '/etc/pihole/pihole-FTL.db'
|
||||||
DHCP_ACTIVE = False
|
DHCP_ACTIVE = False
|
||||||
DHCP_LEASES = '/etc/pihole/dhcp.leases'
|
DHCP_LEASES = '/etc/pihole/dhcp.leases'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
#
|
#
|
||||||
# Pi.Alert v2.51 / 2021-01-11
|
# Pi.Alert v2.55 / 2021-01-13
|
||||||
# Puche 2020
|
# Puche 2020
|
||||||
# GNU GPLv3
|
# GNU GPLv3
|
||||||
|
|
||||||
@@ -28,7 +28,10 @@ import csv
|
|||||||
# CONFIG CONSTANTS
|
# CONFIG CONSTANTS
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
PIALERT_PATH = os.path.dirname(os.path.abspath(__file__))
|
PIALERT_PATH = os.path.dirname(os.path.abspath(__file__))
|
||||||
execfile (PIALERT_PATH + "/pialert.conf")
|
if (sys.version_info > (3,0)):
|
||||||
|
exec(open(PIALERT_PATH + "/pialert.conf").read())
|
||||||
|
else:
|
||||||
|
execfile (PIALERT_PATH + "/pialert.conf")
|
||||||
|
|
||||||
|
|
||||||
#===============================================================================
|
#===============================================================================
|
||||||
@@ -156,8 +159,10 @@ def get_internet_IP ():
|
|||||||
# dig_args = ['dig', '+short', 'myip.opendns.com',
|
# dig_args = ['dig', '+short', 'myip.opendns.com',
|
||||||
# '@resolver1.opendns.com']
|
# '@resolver1.opendns.com']
|
||||||
|
|
||||||
|
# BUGFIX #12 - Query IPv4 address (not IPv6)
|
||||||
# Using 'curl' instead of 'dig'
|
# Using 'curl' instead of 'dig'
|
||||||
curl_args = ['curl', '-s', 'https://diagnostic.opendns.com/myip']
|
# curl_args = ['curl', '-s', 'https://diagnostic.opendns.com/myip']
|
||||||
|
curl_args = ['curl', '-s', QUERY_MYIP_SERVER]
|
||||||
curl_output = subprocess.check_output (curl_args, universal_newlines=True)
|
curl_output = subprocess.check_output (curl_args, universal_newlines=True)
|
||||||
|
|
||||||
# Check result is an IP
|
# Check result is an IP
|
||||||
@@ -292,9 +297,12 @@ def update_devices_MAC_vendors ():
|
|||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
def query_MAC_vendor (pMAC):
|
def query_MAC_vendor (pMAC):
|
||||||
try :
|
try :
|
||||||
|
# BUGFIX #6 - Fix pMAC parameter as numbers
|
||||||
|
pMACstr = str(pMAC)
|
||||||
|
|
||||||
# Check MAC parameter
|
# Check MAC parameter
|
||||||
mac = pMAC.replace (':','')
|
mac = pMACstr.replace (':','')
|
||||||
if len(pMAC) != 17 or len(mac) != 12 :
|
if len(pMACstr) != 17 or len(mac) != 12 :
|
||||||
return -2
|
return -2
|
||||||
|
|
||||||
# Search vendor in HW Vendors DB
|
# Search vendor in HW Vendors DB
|
||||||
@@ -447,8 +455,28 @@ def execute_arpscan (pRetries):
|
|||||||
devices_list = [device.groupdict()
|
devices_list = [device.groupdict()
|
||||||
for device in re.finditer (re_pattern, arpscan_output)]
|
for device in re.finditer (re_pattern, arpscan_output)]
|
||||||
|
|
||||||
|
# Bugfix #5 - Delete duplicated MAC's with different IP's
|
||||||
|
# TEST - Force duplicated device
|
||||||
|
# devices_list.append(devices_list[0])
|
||||||
|
# Delete duplicate MAC
|
||||||
|
unique_mac = []
|
||||||
|
unique_devices = []
|
||||||
|
|
||||||
|
for device in devices_list :
|
||||||
|
if device['mac'] not in unique_mac:
|
||||||
|
unique_mac.append(device['mac'])
|
||||||
|
unique_devices.append(device)
|
||||||
|
|
||||||
|
# DEBUG
|
||||||
|
# print (devices_list)
|
||||||
|
# print (unique_mac)
|
||||||
|
# print (unique_devices)
|
||||||
|
# print (len(devices_list))
|
||||||
|
# print (len(unique_mac))
|
||||||
|
# print (len(unique_devices))
|
||||||
|
|
||||||
# return list
|
# return list
|
||||||
return devices_list
|
return unique_devices
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
def copy_pihole_network ():
|
def copy_pihole_network ():
|
||||||
@@ -645,11 +673,12 @@ def create_new_devices ():
|
|||||||
|
|
||||||
# Pi-hole - Insert events for new devices
|
# Pi-hole - Insert events for new devices
|
||||||
# NOT STRICYLY NECESARY (Devices can be created through Current_Scan)
|
# NOT STRICYLY NECESARY (Devices can be created through Current_Scan)
|
||||||
|
# Bugfix #2 - Pi-hole devices w/o IP
|
||||||
print_log ('New devices - 3 Pi-hole Events')
|
print_log ('New devices - 3 Pi-hole Events')
|
||||||
sql.execute ("""INSERT INTO Events (eve_MAC, eve_IP, eve_DateTime,
|
sql.execute ("""INSERT INTO Events (eve_MAC, eve_IP, eve_DateTime,
|
||||||
eve_EventType, eve_AdditionalInfo,
|
eve_EventType, eve_AdditionalInfo,
|
||||||
eve_PendingAlertEmail)
|
eve_PendingAlertEmail)
|
||||||
SELECT PH_MAC, PH_IP, ?, 'New Device',
|
SELECT PH_MAC, IFNULL (PH_IP,'-'), ?, 'New Device',
|
||||||
'(Pi-Hole) ' || PH_Vendor, 1
|
'(Pi-Hole) ' || PH_Vendor, 1
|
||||||
FROM PiHole_Network
|
FROM PiHole_Network
|
||||||
WHERE NOT EXISTS (SELECT 1 FROM Devices
|
WHERE NOT EXISTS (SELECT 1 FROM Devices
|
||||||
@@ -657,13 +686,14 @@ def create_new_devices ():
|
|||||||
(startTime, ) )
|
(startTime, ) )
|
||||||
|
|
||||||
# Pi-hole - Create New Devices
|
# Pi-hole - Create New Devices
|
||||||
|
# Bugfix #2 - Pi-hole devices w/o IP
|
||||||
print_log ('New devices - 4 Pi-hole Create devices')
|
print_log ('New devices - 4 Pi-hole Create devices')
|
||||||
sql.execute ("""INSERT INTO Devices (dev_MAC, dev_name, dev_Vendor,
|
sql.execute ("""INSERT INTO Devices (dev_MAC, dev_name, dev_Vendor,
|
||||||
dev_LastIP, dev_FirstConnection, dev_LastConnection,
|
dev_LastIP, dev_FirstConnection, dev_LastConnection,
|
||||||
dev_ScanCycle, dev_AlertEvents, dev_AlertDeviceDown,
|
dev_ScanCycle, dev_AlertEvents, dev_AlertDeviceDown,
|
||||||
dev_PresentLastScan)
|
dev_PresentLastScan)
|
||||||
SELECT PH_MAC, PH_Name, PH_Vendor, PH_IP, ?, ?,
|
SELECT PH_MAC, PH_Name, PH_Vendor, IFNULL (PH_IP,'-'),
|
||||||
1, 1, 0, 1
|
?, ?, 1, 1, 0, 1
|
||||||
FROM PiHole_Network
|
FROM PiHole_Network
|
||||||
WHERE NOT EXISTS (SELECT 1 FROM Devices
|
WHERE NOT EXISTS (SELECT 1 FROM Devices
|
||||||
WHERE dev_MAC = PH_MAC) """,
|
WHERE dev_MAC = PH_MAC) """,
|
||||||
@@ -1208,7 +1238,7 @@ def write_file (pPath, pText):
|
|||||||
file.close()
|
file.close()
|
||||||
else:
|
else:
|
||||||
file = open (pPath, 'w', encoding='utf-8')
|
file = open (pPath, 'w', encoding='utf-8')
|
||||||
file.write (ptext)
|
file.write (pText)
|
||||||
file.close()
|
file.close()
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
|
|||||||
BIN
db/pialert.db
BIN
db/pialert.db
Binary file not shown.
@@ -3,7 +3,7 @@
|
|||||||
Initially designed to run on a Raspberry PI, probably it can run on many other
|
Initially designed to run on a Raspberry PI, probably it can run on many other
|
||||||
Linux distributions.
|
Linux distributions.
|
||||||
|
|
||||||
Stimated time: 20'
|
Estimated time: 20'
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
| Dependency | Comments |
|
| Dependency | Comments |
|
||||||
@@ -34,7 +34,7 @@ Stimated time: 20'
|
|||||||
password: raspberry
|
password: raspberry
|
||||||
```
|
```
|
||||||
|
|
||||||
5 - Change de default password of pi user
|
5 - Change the default password of pi user
|
||||||
```
|
```
|
||||||
passwd
|
passwd
|
||||||
```
|
```
|
||||||
@@ -115,7 +115,7 @@ Stimated time: 20'
|
|||||||
|
|
||||||
## Pi.Alert
|
## Pi.Alert
|
||||||
<!--- --------------------------------------------------------------------- --->
|
<!--- --------------------------------------------------------------------- --->
|
||||||
1- Download Pi.Alert and uncmompress
|
1- Download Pi.Alert and uncompress
|
||||||
```
|
```
|
||||||
curl -LO https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_latest.tar
|
curl -LO https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_latest.tar
|
||||||
tar xvf pialert_latest.tar
|
tar xvf pialert_latest.tar
|
||||||
@@ -127,7 +127,7 @@ Stimated time: 20'
|
|||||||
sudo ln -s /home/pi/pialert/front /var/www/html/pialert
|
sudo ln -s /home/pi/pialert/front /var/www/html/pialert
|
||||||
```
|
```
|
||||||
|
|
||||||
3 - Update lighttp config
|
3 - Update lighttpd config
|
||||||
```
|
```
|
||||||
sudo sh -c "printf '\n\n\$HTTP[\"host\"] == \"pi.alert\" {\n server.document-root = \"/var/www/html/pialert/\"\n}\n' >> /etc/lighttpd/external.conf"
|
sudo sh -c "printf '\n\n\$HTTP[\"host\"] == \"pi.alert\" {\n server.document-root = \"/var/www/html/pialert/\"\n}\n' >> /etc/lighttpd/external.conf"
|
||||||
sudo /etc/init.d/lighttpd restart
|
sudo /etc/init.d/lighttpd restart
|
||||||
@@ -144,7 +144,7 @@ Stimated time: 20'
|
|||||||
```
|
```
|
||||||
nano ~/pialert/back/pialert.conf
|
nano ~/pialert/back/pialert.conf
|
||||||
```
|
```
|
||||||
- if you want to use email reporting, configure this parameters
|
- If you want to use email reporting, configure this parameters
|
||||||
```
|
```
|
||||||
REPORT_MAIL = True
|
REPORT_MAIL = True
|
||||||
SMTP_USER = 'user@gmail.com'
|
SMTP_USER = 'user@gmail.com'
|
||||||
@@ -152,7 +152,7 @@ Stimated time: 20'
|
|||||||
REPORT_TO = 'user@gmail.com'
|
REPORT_TO = 'user@gmail.com'
|
||||||
```
|
```
|
||||||
|
|
||||||
- if you want to update yout Dynamic DNS, configure this parameters
|
- If you want to update your Dynamic DNS, configure this parameters
|
||||||
```
|
```
|
||||||
DDNS_ACTIVE = True
|
DDNS_ACTIVE = True
|
||||||
DDNS_DOMAIN = 'your_domain.freeddns.org'
|
DDNS_DOMAIN = 'your_domain.freeddns.org'
|
||||||
@@ -161,7 +161,7 @@ Stimated time: 20'
|
|||||||
DDNS_UPDATE_URL = 'https://api.dynu.com/nic/update?'
|
DDNS_UPDATE_URL = 'https://api.dynu.com/nic/update?'
|
||||||
```
|
```
|
||||||
|
|
||||||
- if you have installed Pi.hole and DHCP, activate this parameters
|
- If you have installed Pi.hole and DHCP, activate this parameters
|
||||||
```
|
```
|
||||||
PIHOLE_ACTIVE = True
|
PIHOLE_ACTIVE = True
|
||||||
DHCP_ACTIVE = True
|
DHCP_ACTIVE = True
|
||||||
@@ -183,7 +183,13 @@ Stimated time: 20'
|
|||||||
(crontab -l 2>/dev/null; cat ~/pialert/back/pialert.cron) | crontab -
|
(crontab -l 2>/dev/null; cat ~/pialert/back/pialert.cron) | crontab -
|
||||||
```
|
```
|
||||||
|
|
||||||
9 - Use admin panel to configure the devices
|
9 - Add DB permissions to the web-server user
|
||||||
|
```
|
||||||
|
sudo chgrp -R www-data ~/pialert/db
|
||||||
|
chmod -R 770 ~/pialert/db
|
||||||
|
```
|
||||||
|
|
||||||
|
10 - Use admin panel to configure the devices
|
||||||
- http://pi.alert/
|
- http://pi.alert/
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=33%> Report Date: <b>2021-01-11 08:00</b> </td>
|
<td width=33%> Report Date: <b>2021-01-01 08:00</b> </td>
|
||||||
<td width=34%> Scan Cycle: <b>Internet</b> </td>
|
<td width=34%> Scan Cycle: <b>Internet</b> </td>
|
||||||
<td width=33%> Server: <b>pi4</b> </td>
|
<td width=33%> Server: <b>pi4</b> </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td> Internet IP Changed </td>
|
<td> Internet IP Changed </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td style="font-size: 24px; color:#D02020"> 1.1.1.0 </td>
|
<td style="font-size: 24px; color:#D02020"> 1.1.1.0 </td>
|
||||||
<td> Previous Internet IP: 1.1.0.0 </td>
|
<td> Previous Internet IP: 1.1.0.0 </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=25% style="text-align:Left"> Puche 2021</td>
|
<td width=25% style="text-align:Left"> Puche 2021</td>
|
||||||
<td width=50% style="text-align:center"> Pi.Alert 2.51 / 2021-01-11 </td>
|
<td width=50% style="text-align:center"> Pi.Alert 2.50 / 2021-01-01 </td>
|
||||||
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=33%> Report Date: <b>2021-01-11 08:00</b> </td>
|
<td width=33%> Report Date: <b>2021-01-01 08:00</b> </td>
|
||||||
<td width=34%> Scan Cycle: <b>1</b> </td>
|
<td width=34%> Scan Cycle: <b>1</b> </td>
|
||||||
<td width=33%> Server: <b>pi4</b> </td>
|
<td width=33%> Server: <b>pi4</b> </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -43,13 +43,13 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td> f8:d0:27:00:00:00 </td>
|
<td> f8:d0:27:00:00:00 </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td> 192.168.1.20 </td>
|
<td> 192.168.1.20 </td>
|
||||||
<td> Seiko Epson Corporation </td>
|
<td> Seiko Epson Corporation </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td> c8:6c:3d:00:00:00 </td>
|
<td> c8:6c:3d:00:00:00 </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td> 192.168.1.181 </td>
|
<td> 192.168.1.181 </td>
|
||||||
<td> Amazon Technologies Inc. </td>
|
<td> Amazon Technologies Inc. </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td> 0c:ee:99:00:00:00 </td>
|
<td> 0c:ee:99:00:00:00 </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td> 192.168.1.171 </td>
|
<td> 192.168.1.171 </td>
|
||||||
<td> Alexa - Echo </td>
|
<td> Alexa - Echo </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td> 94:0c:98:00:00:00 </td>
|
<td> 94:0c:98:00:00:00 </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td> 192.168.1.132 </td>
|
<td> 192.168.1.132 </td>
|
||||||
<td> Connected </td>
|
<td> Connected </td>
|
||||||
<td> Person 1 - iPhone 11 </td>
|
<td> Person 1 - iPhone 11 </td>
|
||||||
@@ -105,7 +105,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td> 5c:41:5a:00:00:00 </td>
|
<td> 5c:41:5a:00:00:00 </td>
|
||||||
<td> 2021-01-02 08:20:00 </td>
|
<td> 2021-01-01 08:00:00 </td>
|
||||||
<td> 192.168.1.170 </td>
|
<td> 192.168.1.170 </td>
|
||||||
<td> IP Changed </td>
|
<td> IP Changed </td>
|
||||||
<td> Alexa Dot </td>
|
<td> Alexa Dot </td>
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=25% style="text-align:Left"> Puche 2021</td>
|
<td width=25% style="text-align:Left"> Puche 2021</td>
|
||||||
<td width=50% style="text-align:center"> Pi.Alert 2.51 / 2021-01-11 </td>
|
<td width=50% style="text-align:center"> Pi.Alert 2.50 / 2021-01-01 </td>
|
||||||
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
© 2021 Puche
|
© 2021 Puche
|
||||||
<!-- To the right -->
|
<!-- To the right -->
|
||||||
<div class="pull-right no-hidden-xs">
|
<div class="pull-right no-hidden-xs">
|
||||||
Pi.alert  2.51  <small>(2021-01-11)</small>
|
Pi.alert  2.55  <small>(2021-01-13)</small>
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,16 @@
|
|||||||
#
|
#
|
||||||
PIALERT_VERSION=2.50
|
PIALERT_VERSION=2.55
|
||||||
PIALERT_DEV_PATH=/media/WD_4TB/dev
|
PIALERT_DEV_PATH=/media/WD_4TB/dev
|
||||||
|
|
||||||
cd $PIALERT_DEV_PATH
|
cd $PIALERT_DEV_PATH
|
||||||
tar tvf pialert/install/pialert_$PIALERT_VERSION.tar | wc -l
|
|
||||||
rm pialert/install/pialert_$PIALERT_VERSION.tar
|
tar tvf pialert/install/pialert_latest.tar | wc -l
|
||||||
|
rm pialert/install/pialert_*.tar
|
||||||
|
|
||||||
tar cvf pialert/install/pialert_$PIALERT_VERSION.tar --exclude="pialert/install" --exclude="pialert/.git" pialert | wc -l
|
tar cvf pialert/install/pialert_$PIALERT_VERSION.tar --exclude="pialert/install" --exclude="pialert/.git" pialert | wc -l
|
||||||
|
|
||||||
|
# rm pialert/install/pialert_latest.tar
|
||||||
|
ln -s pialert_$PIALERT_VERSION.tar pialert/install/pialert_latest.tar
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -16,7 +16,7 @@
|
|||||||
<td>
|
<td>
|
||||||
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 16px; text-align:center; color:#5F5000">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=33%> Report Date: <b>2021-01-04 18:08</b> </td>
|
<td width=33%> Report Date: <b>2021-01-01 08:00</b> </td>
|
||||||
<td width=34%> Scan Cycle: <b>1</b> </td>
|
<td width=34%> Scan Cycle: <b>1</b> </td>
|
||||||
<td width=33%> Server: <b>pi4</b> </td>
|
<td width=33%> Server: <b>pi4</b> </td>
|
||||||
</tr>
|
</tr>
|
||||||
@@ -35,7 +35,7 @@
|
|||||||
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
<table width=100% border=0 bgcolor=#70AD47 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 12px; font-weight: bold; color:#385723">
|
||||||
<tr>
|
<tr>
|
||||||
<td width=25% style="text-align:Left"> Puche 2021</td>
|
<td width=25% style="text-align:Left"> Puche 2021</td>
|
||||||
<td width=50% style="text-align:center"> Pi.Alert DEV 2.51 / 2021-01-11 </td>
|
<td width=50% style="text-align:center"> Pi.Alert 2.50 / 2021-01-01 </td>
|
||||||
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
<td width=25% style="text-align:right"> GNU GPLv3</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
Pi.Alert Report
|
Pi.Alert Report
|
||||||
========================================
|
========================================
|
||||||
|
|
||||||
Report Date: 2021-01-11 00:00
|
Report Date: 2021-01-01 08:00
|
||||||
Scan Cycle: 1
|
Scan Cycle: 1
|
||||||
Server: pi4
|
Server: pi4
|
||||||
|
|
||||||
@@ -12,4 +12,4 @@ Events
|
|||||||
|
|
||||||
|
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
Puche 2021 Pi.Alert 2.51 / 2021-01-11 GNU GPLv3
|
Puche 2021 Pi.Alert 2.50 / 2021-01-01 GNU GPLv3
|
||||||
|
|||||||
Reference in New Issue
Block a user