Categories
Uncategorized

Scheduling rsync in macOS (with cron)

A shell windows with man rsync

There’s an old saying “Linux will give you enough rope to shoot yourself in the foot!” and what that means is you’ve got power but you need to know how to use it. I’ve been using macOS (pka “Mac OS X”) for almost as long as I’ve been using Linux and I use the command line constantly in macOS and try to maintain a consistent experience between macOS and Linux when I can. I also tend to be late to install the most recent version of macOS.

So last year I wanted to set up a cron job to run a shell script to run rsync. On macOS. I tested things, added the cron job and it didn’t seem to work. I debugged, I tested, I searched… It seems macOS could not run an rsync job via cron. I tried to add cron, rsync, zsh, and iTerm, Terminal.app, and WezTerm to the “Full Disk Permissions” thing in the System Preferences. Eventually I gave up.

Well, eventually I created a workaround using Keyboard Maestro which has its own cron, and Platypus which wraps shell scripts in an Application, and that worked, but it’s overly complicated, so I’ll show you the way I do it now.

Automator window showing how to run a shell script

Launch Automator and create an Application…


Automator window showing how to run a shell script

Search for “shell” and you’ll see “Run Shell Script”. Drag it to the right side of the windows…


Automator window showing how to run a shell script

Type the path to your script.

/Users/pete/scripts/buRsync.sh 1>/Users/pete/scripts/buRsync.log 2>/Users/pete/scripts/buRsync.err

I’ve chosen to pipe the output and errors to files but you can skip that if you want. I also chose to use full paths.


Automator window showing how to run a shell script

Export the Application…


Automator window showing how to run a shell script

Give it a name and save it. You can put it right in the /Applications folder since it’s an actual macOS application.

Now you can add a cron job and use the macOS open command to open the application instead of trying to run a shell script directly.

0 6,18 * * * /usr/bin/open /Applications/RsyncApp.app

This seems to work fine for me in macOS Sonoma 14.6.1 but if it breaks in the future I’ll update this… if I don’t, just let me know!

Bonus: You can use the macOS Launcher to quickly and easily run shell scripts this way!


Yes, of course there is launchd but I think it’s overkill and a bit complicated for those who already know cron.

Categories
Uncategorized

Warning AT&T U-verse TV Stop Working

A screen from an AT&T Router that says Warning: The change you are attempting to make may cause AT&T U-verse to stop working properly.

NOTE! Make sure you read the Update! at the bottom of this post.


This blog post exists for one reason, to let you know that I clicked “Confirm” to this warning screen and everything was totally fine.

Warning: The change you are attempting to make may cause AT&T U-verse to stop working properly.

It’s 2025 and I have an AT&T router with a fiber connection with the DirecTV package. I do not have AT&T U-verse, though I did about a decade ago in 2014. I don’t even know if they still offer U-verse, but when I searched online to see if it was okay to click Confirm and it would not break my Internet connection all I could find was people asking the question on various forums with no clear answers given. So I’m here to tell you that for me it worked fine.

You can stop reading if you’ve learned all you need to know!

A screen from an AT&T Router

Still here? Okay, so I was using the NAT feature of the router to do some port forwarding but I then wanted to install Nginx Proxy Manager to make things easier… Once installed Nginx Proxy Manager wants to be set to port 80, which causes the router to show you that warning. That’s when I did some searches and found no good answer.

I decided to be the person who tried it out, and… it worked for me. I did not see any disruption in my Internet connection, my TVs are all fine, and my non-existent U-verse service did not get interrupted because it does not exist.

A screen showing the Nginx Proxy Manager Setup

So yeah, Uverse, U-verse, ATT, AT&T, Router, Internet, Warning, did not Stop Working, and all was well and just fine in the end. (Yes, that contains some of the potential search terms people might use.)

I should do wrote another post that covers the Nginx Proxy Manager.

Update!

About four weeks after doing this the router lost power one day and when it came back online it lost many of the settings… The WiFi newtwork name and settings I’ve had set for 6+ months was gone along with any port forwarding information. I don’t know if the actions I took were at all related, but it may be worth mentioning. It may be a good idea to reboot and see if your settings stick. (I guess I should schedule a reboot and test as well…)

Categories
Uncategorized

Scrappy Hour Ride – February 2025

Scrappy Hour - Feb 2025

Hey, we did it again! The February 23rd, 2025 Scrappy Hour Ride was a cold one, and there was snow on the ground, though the streets and bike paths were clear. But yeah, it was another cold one. Sadly we had just two people from Wauwatosa this time, just Michael and myself. Matt could not make it, and Meg and Paige did not show… Anyway, Michael and I made the trek to the lakefront to meet up with the others.

Scrappy Hour - Feb 2025

I brought the Kids Camera Instant Print (get your own!) and took a few photos while we were hanging out. As usual, if people let me take their picture I gave them a receipt.

Scrappy Hour - Feb 2025

We did manage to see a truck completely blocking the protected bike lane on the way there… I really gotta remember to use Bike Lane Uprising next time.

Scrappy Hour - Feb 2025

If you still use The Instagorm you can find the Scrappy Hour over there. There is also a mailing list somewhere for alerts about rides for the community

Scrappy Hour - Feb 2025

Anyway, that’s all I got so enjoy the photos and we’ll see you on Sunday, March 30th, 2025!

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025

Scrappy Hour - Feb 2025


Note: This post contains an Affiliate Link. Read More.

Categories
Uncategorized

My Little Tarot Library

My Little Tarot Library

Remember back in 2023 when I launched Gallery 69, a FLAG in Enderis Park? Well, the neighborhood can now welcome another Free Library… of another kind!

My Little Tarot Library

I don’t know Mandy but she’s got an account for her mylittletarotlibrary that you can check out, and if you’re local you can swing by 74th street between Hadley and Locust and get your own tarot reading!

My Little Tarot Library

I know almost nothing about tarot readings or cards but I’ve learned a few things about them from Dana and a couple friends who do readings.

My Little Tarot Library

Dana told me you are not supposed to buy your own tarot deck, as it should be gifted to you. Did she just make that up so I buy her a deck? I don’t know! I do know that Stacey Williams-Ng made a nice looking deck!

My Little Tarot Library

It looks like Mandy offers readings but I did a terrible job with the photo of her card so contact her via Instagram for info!

My Little Tarot Library

When you visit the library you’ll see a stack of cards in envelopes or just wrapped in paper. Take one and there will be a reading written on the paper wrapped around the card.

This is the card I got when I was riding past on my bike one day and discovered the library. I told Dana about the library but felt she needed to go get her own card.

My Little Tarot Library

So here’s the card Dana got. Wild, right? Although honestly if we keep going back each week Dana could have a full deck within a year! (Kidding!)

Categories
Uncategorized

An Automated Announcement System

AAAS Robot

An Automated Announcement System (or “AAAS”) is an idea for a system that can make scheduled announcements during an event when you are too busy to do it yourself.

This is an idea I was working on back around 2017 or so when I was one of the producers for Maker Faire Milwaukee. Each year the venue would have a PA system, and our venue manager would show us how to use it. It was typically a mic with an on/off switch attached to the front panel of a PA system ready to go. Pick up mic, turn it on, talk, turn it off. Simple, right?

The issue is that we always ran with a skeleton crew of just a few people, and we were always dealing with putting out fires or dealing with something important and would always forget to make announcements!

The other issue is that when you go live on a mic with 5,000 people listening you might not deliver your words smoothly… especially if you don’t have a script to read from… and who has time to write a script when things are one fire all around you?

So that’s where the idea of An Automated Announcement System came from.

The original idea was that I would create a schedule of announcements and then prerecord them all to audio files, then once we had a folder full of audio files we’d load them onto a Raspberry Pi with cron jobs to run a script to play the audio at the appropriate times.

The Raspberry Pi would have the audio output connected to the audio input of the PA system so it could just run in the background without any user intervention, and do the announcements for you.

Maybe the audio files would all have timestamps as names and one script would just run continually checking for a match of the current time and then play the file. That might be easier than scheduling a whole bunch of cron jobs. Heck there’s probably some super-simple unixy-system way to do it that. (If not maybe I should write one!?)

Anyway, that was my idea for An Automated Announcement System which never happened because I never had time to work on it and then in 2020 there was a global pandemic and Maker Faire was put on hold. Sigh.

Feel free to run with this idea if you like it!