78 lines
1.9 KiB
Markdown
78 lines
1.9 KiB
Markdown
# synchole
|
|
|
|
Shell script to syncronize a SLAVE [pi-hole](https://pi-hole.net) server with a MASTER pi-hole server. It downloads _blacklist.txt_, _whitelist.txt_ and _regex.list_ from the MASTER, updates local files and runs `updateGravity` on the SLAVE.
|
|
|
|
|
|
## Setup
|
|
|
|
1. Login via SSH to the `MASTER` server.
|
|
|
|
2. Create symlinks for all files you want to be able to sync within the webroot of the `MASTER` pihole.
|
|
```
|
|
cd /var/www/html
|
|
sudo mkdir synchole
|
|
cd synchole
|
|
sudo ln -s /etc/pihole/whitelist.txt .
|
|
sudo ln -s /etc/pihole/blacklist.txt .
|
|
sudo ln -s /etc/pihole/regex.list .
|
|
```
|
|
|
|
3. Login via SSH to the `SLAVE` server.
|
|
|
|
4. Install _wget_ and _[synchole](https://socialg.it/david/synchole)_ on the `SLAVE` server.
|
|
```
|
|
sudo apt-get update
|
|
sudo apt-get install wget
|
|
sudo wget https://socialg.it/david/synchole/raw/master/synchole.sh -O /usr/bin/synchole
|
|
sudo chmod +x /usr/bin/synchole
|
|
```
|
|
|
|
5. Configure the synchole script to your liking.
|
|
```
|
|
sudo vim /usr/bin/synchole
|
|
```
|
|
The config section is at the top of the script.
|
|
|
|
6. Create a cron job for synchole on the `SLAVE` server.
|
|
```
|
|
sudo crontab -e
|
|
```
|
|
Example cronjob: `*/5 * * * * /usr/bin/synchole` (this runs synchole every 5 minutes)
|
|
|
|
8. Repeat steps 3 through 6 for additional `SLAVE` servers.
|
|
|
|
9. Happy syncholeing!
|
|
|
|
|
|
## Update
|
|
|
|
1. To update synchole login via SSH to the `SLAVE` server.
|
|
|
|
2. Run the following commands (again) on the `SLAVE` server.
|
|
```
|
|
sudo wget https://socialg.it/david/synchole/raw/master/synchole.sh -O /usr/bin/synchole
|
|
sudo chmod +x /usr/bin/synchole
|
|
```
|
|
|
|
## Uninstall
|
|
|
|
1. To uninstall synchole login via SSH to the `SLAVE` server.
|
|
|
|
2. Run the following command on the `SLAVE` server.
|
|
```
|
|
sudo rm /usr/bin/synchole
|
|
```
|
|
|
|
3. Login via SSH to the `MASTER` server.
|
|
|
|
4. Run the following command on the `MASTER` server.
|
|
```
|
|
sudo rm -r /var/www/html/synchole
|
|
```
|
|
|
|
5. Enjoy inconsistent states between your servers. ;-)
|
|
|
|
|
|
## Resources
|
|
- https://discourse.pi-hole.net/t/what-files-does-pi-hole-use/1684
|