You may know I use cron quite a lot, and you may also say that I love cron. Its easy and simple to use, but when you just boot up your computer, some cron jobs will have to wait till the next scheduled time to run. If you like me, running cron job for getting updates from various sources, then you would have to manually run those scripts.

run-parts of debianutils is the command for the job, you simply symbolic link every script in a directory and:

$ run-parts /path/to/dir

You can test with --test (only executable) or --list to make sure everything is in place. Running with --verbose or --report (only output when something went wrong) to see the process. You can also pass argument through --arg, pass to all scripts.

Unfortunately, you can only tell run-parts one directory and it doesnt do recursively.

The following command can do what run-parts cant:

run-parts-deep() {
  find -L "$" -type f -executable -exec {} \;
}

run-parts-deep dir1 dir2 dir3

This is very simple, dont have any options, and I dont actually use it, I stick with run-parts. But if you want a base template to start with. It follows symbolic links, also detects circular loop.