# 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