Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahemys/pihole-backup
pihole backup database and configuration to archive. run via terminal or cron.
https://github.com/mahemys/pihole-backup
backup pi-hole
Last synced: 22 days ago
JSON representation
pihole backup database and configuration to archive. run via terminal or cron.
- Host: GitHub
- URL: https://github.com/mahemys/pihole-backup
- Owner: mahemys
- License: gpl-3.0
- Created: 2023-07-25T16:51:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-07-29T18:05:01.000Z (over 1 year ago)
- Last Synced: 2024-11-02T07:06:00.462Z (2 months ago)
- Topics: backup, pi-hole
- Language: Python
- Homepage:
- Size: 31.3 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pihole backup
- pihole_backup.py
- created by mahemys 2023.07.22 18:40 IST
- !perfect, but works!
- GNU-GPL; no license; free to use!
- update 2023-07-24 10:15 IST; initial review; optimise
- update 2023-07-25 21:50 IST; refer api endpoints
- update 2023-07-26 21:05 IST; get api token from file**purpose**
- pihole perform internal routine and backup of database and configuration to archive
- pihole database will grow over time; move db to archive
- pihole perform internal routine; backup config to archive
- internal log writing; time in ist;**how to use**
- just copy file to pihole /home/pi/
- run this python script in terminal or via crontab**terminal**
- run in terminal ```"sudo python3 /home/pi/pihole_backup.py"```**crontab**
- user pi; root not required
- crontab -e edit; crontab -l check
- set your desired interval via crontab preferred e.o.d 23:59
- add to crontab ```"59 23 * * * sudo python3 /home/pi/pihole_backup.py"```**requirements**
- pytz for timezone
- sudo apt-get install python3-pip
- sudo pip install pytz**process**
- get stats -> stop ftl -> backup db -> start ftl -> backup config -> flush -> update**0.0 pihole version; stats; token**
- 0.1 get pihole version
- 0.2 get pihole stats
- 0.3 get pihole api token**1.0 pihole move db to archive**
- 1.1 pihole folder
- 1.2 stop FTL service
- 1.3 get file size
- 1.4 folder name
- 1.5 move to folder; rename
- 1.6 start FTL service**2.0 pihole perform internal routine**
- 2.1 backup configuration
- 2.2 flush pihole.log
- 2.3 flush network table
- 2.4 update gravity aka adlist
- 2.5 update pi-hole aka all**pihole folders; files**
- pihole folder /etc/pihole/
- pihole ftl db /etc/pihole/pihole-FTL.db
- archive /home/pi/pihole_bkp/
- database /home/pi/pihole_bkp/Y/Ym/pihole-FTL_Ymd_HMS.db
- config /home/pi/pihole_bkp/Y/Ym/pihole-conf_Ymd_HMS.tar.gz
- bkplog /home/pi/pihole_bkp/Y/Ym/pihole_bkp_log_Ymd_HMS.txt**pihole useful commands**
- pihole -v display version of each service
- pihole -v -a display version of AdminLTE
- pihole -v -f display version of FTL
- pihole -v -p display version of pi-hole
- pihole -a -t backup config teleporter to archive
- pihole -f flush pihole.log
- pihole arpflush flush network table
- pihole -g update gravity aka adlist
- pihole -up update pihole version**tweak to get stats without login**
- get stats from /pihole instead of /admin
- keep old version of pi-hole 'AdminLTE v5.13' in /home/pi/AdminLTE-5.13
- copy entire 'AdminLTE-5.13' folder to /var/www/html/pihole
- ```sudo cp -a /home/pi/AdminLTE-5.13/. /var/www/html/pihole```
- AdminLTE v5.13 and below -> /var/www/html/pihole -> no login required
- AdminLTE v5.14 and above -> /var/www/html/admin -> login or API Token required**authentication for more API endpoints required**
- in order to avoid the above; follow the below!
- https://discourse.pi-hole.net/t/upcoming-changes-authentication-for-more-api-endpoints-required/59315
- https://pi-hole.net/blog/2022/11/17/upcoming-changes-authentication-for-more-api-endpoints-required/#page-content
- You can get the token from Settings/API/Show API token or from /etc/pihole/setupVars.conf (WEBPASSWORD).
- /admin/api.php?summaryRaw
- /admin/api.php?summaryRaw&auth=\**pihole api token**
- get api token from file**footnote**
- let me know if you find any bugs!
- Thank you mahemys