On Wed 30 Aug 2017 at 11:07:36 (-0700), James H. H. Lampert wrote: > Can somebody explain this: > > My backup script WILL detect that ExternalHD is not mounted, and > attempt to mount it, if I run it manually. > > But it WON'T do that if it runs in a cron job. > > I've isolated the relevant code into its own script, added debugging > output, and set it up to run every minute. Here's the test script: > >#! > >date >> ~/test.txt > >pwd >> ~/test.txt > >cd /media/ExternalHD/Backups > >if [ "$?" = "1" ]; then > > echo "mounting" >> ~/test.txt > > mount /media/ExternalHD >> ~/test.txt > > cd /media/ExternalHD/Backups > >fi > >pwd >> ~/test.txt > > Here is what I get when the cron job trips, and ExternalHD is not mounted: > >Wed Aug 30 10:49:01 PDT 2017 > >/root > >/root > >Wed Aug 30 10:50:01 PDT 2017 > >/root > >/root > . . . > >Wed Aug 30 10:55:01 PDT 2017 > >/root > >/root > > and here is what I get when I run the script from a command line: > >Wed Aug 30 10:55:07 PDT 2017 > >/root > >mounting > >/media/ExternalHD/Backups > > Why would the behavior be any different? Could it be that cron is > running it an entirely different shell, that doesn't understand the > "if" statement? Here's the crontab line: > >* * * * * ~/test.sh
Yes, man 5 crontab documents exactly that. Cheers, David.