Thanks Vince I appreciate you sharing your approaches.
On Tuesday, September 22, 2026 at 9:41:27 AM UTC+10 Vince Skahan wrote: > There's no need to stop weewx in my experience so you don't need any while > loop. > > This one comes up periodically every year or so and there are 'many' > threads with pointers to other folks' scripts and approaches in the > archives of this google group. That said, I do it a couple ways - I do > nightly copies (gzipped) of all my databases - and I do occasional copies > of all the pertinent software excluding databases. > > Here are my two scripts for a 'pip' installation. Hopefully the comments > are self-explanatory. I renamed them to end in .txt to make clicking to > read them easier. Note the 'exclude' in the script that backs up the > software itself which skips backing up the database(s) which the other > script handles nightly. > > > > On Monday, September 21, 2026 at 4:24:07 PM UTC-7 David Schulz wrote: > >> OK, That's not how you do a code block here - apologies. And no edit!?!?! >> >> On Tuesday, September 22, 2026 at 9:22:44 AM UTC+10 David Schulz wrote: >> >>> Hi >>> I'm attempting to write my first bash script to backup weewx. I'm >>> struggling with the syntax of a condition for a while loop that checks if >>> weewx has stopped or is still stopping. >>> >>> I don't really understand the syntax of the example conditions I can >>> find for various tutorials on using while to create a loop. I cannot find >>> anywhere an exact example of using 'systemctl is-active' as the condition >>> for a while loop. >>> >>> Appreciate any feedback from people more learned than I. >>> >>> TIA >>> >>> Here's what I have at the moment. If I run this script when I know >>> weewx won't be writing to the database, the commands to zip the files into >>> the backup directory all work OK. >>> >>> I don't think I want to be copying the database file in the middle of a >>> write. So I have a separate script with the backup section removed just >>> trying to test the stopping, check has stopped and start parts of the >>> script. I've been unsuccessfully futzing around with different condition >>> syntax and actively trying to run it when weewx is active and the stop >>> command will take a while to execute while the weewx main loop completes. >>> But TBH I'm just wandering about in the dark. >>> >>> ``` >>> #!/bin/bash >>> # >>> # Stop weewx service >>> echo $(date): Weewx is stopping >> /var/log/weewx-backup.log >>> systemctl stop weewx >>> # >>> # Check service has stopped >>> while [ systemctl -q is-active weewx ]; >>> do >>> sleep 1 >>> echo $(date): Weewx is still stopping >> >>> /var/log/weewx-backup.log >>> done >>> echo $(date): Weewx has stopped >> /var/log/weewx-backup.log >>> # >>> # Copy files to backup folder >>> echo $(date): Backup is starting >> /var/log/weewx-backup.log >>> tar -czvf /mnt/backup/weewx-conf.tar.gz /etc/weewx >>> tar -czvf /mnt/backup/weewx-db.tar.gz /var/lib/weewx/weewx.sdb >>> echo $(date): Backup is complete >> /var/log/weewx-backup.log >>> # >>> # Start weewx service >>> systemctl start weewx >>> echo $(date): Weewx is starting >> /var/log/weewx-backup.log >>> ``` >>> >> -- You received this message because you are subscribed to the Google Groups "weewx-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/weewx-user/a6ed97b6-e20b-4882-b671-333077863c48n%40googlegroups.com.
