Hot answers tagged

27

By default, "logging" is not enabled. But you may get some useful information by running the mail command. TL;DR on the mail command: press enter to read messages, and then q and enter to quit.


27

In your case you have to add cron as "parent" app to the user's Security & Privacy > Privacy > Full Disk Access apps/execs. Depending where to read the script from and where to write the log file to, you have to add cron to the Full Disk Access apps. Almost all default folders in the user's home are protected (Documents/Downloads/Desktop - I haven't ...


24

Much easier to simply add the following to /etc/syslog.conf : cron.* /var/log/cron.log Then restart syslog sudo launchctl stop /System/Library/LaunchDaemons/com.apple.syslogd.plist sudo launchctl start /System/Library/LaunchDaemons/com.apple.syslogd.plist Tested and working on macOS 11.3


22

You need to grant cron full disk access. Drag /usr/sbin/cron into the Full Disk Access area in System Preferences > Security & Privacy > Privacy tab. Source: https://twitter.com/DaveWoodX/status/1184235412509941761


18

The environment a cron job runs in is quite a bit different from an interactive shell; it's likely that the script is running, but not successfully. One of the biggest differences are that for cron jobs, the default PATH is just "/usr/bin:/bin", so if you use any commands that aren't in /usr/bin or /bin, they won't be found unless your script either sets its ...


15

I was able to find cron-job log in, /var/mail/{user-name} Following is a cron job log I got for running an AWS CLI command, From build@BuildServer1.local Fri Mar 2 10:00:00 2018 Return-Path: <build@BuildServer1.local> X-Original-To: build Delivered-To: build@BuildServer1.local Received: by BuildServer1.local (Postfix, from userid 501) id ...


9

The canonical way to check status of time machine is to use the utility and check status or for newer os check the current phase only: tmutil status tmutil currentphase Now, you have to process the text since it reports exit 0 when running and when it's not running since the status returned - not that there's a correct status. I would use: tmutil ...


8

You don't need to call cron directly. Any commands you want to run need to be added to the crontab of the user they should run as. You can edit your crontab by running crontab -e or, if you are an admin user and want to edit the crontab of another user, crontab -u USERNAME -e PS: Run man 5 crontab for details about the format of the file, what kind of ...


8

This requires adding cron to the Full Disk Access list. Open System Preferences : Security & Privacy : Privacy : Full Disk Access Both rsync and cron must be included on this list. Before Catalina, listing only rsync would work. On Catalina, rsync by itself only lets you run rsync by hand. For it to work within cron, cron must also be on the list ...


7

Not nearly as complicated, but perhaps of value, is the app Choosy. It allows you to choose your browser every time you open a link outside of a browser. While this might sound onerous, it's actually pretty transparent, and I find it very useful in the leadup to going live with a new web project and testing in multiple browsers over and over and over… Might ...


7

cron doesn't execute while the computer is asleep. So cron can't wake your system. See: https://superuser.com/a/14846/246895


6

Expanding on my comment above.... See the comment by user kerma at this related StackFlow article His little command line app at https://github.com/kerma/defaultbrowser does what you need. He provided the source code but it was designed for 10.9. A small change can make it to compile on 10.6 as well. I tested it on my system and it worked correctly. All ...


6

Your commands should actually work, however it's not as I would do it. Instead try :- sudo crontab -e -u root then to list :- sudo crontab -l -u root As a general rule I go to a great deal of trouble to never run a root shell. When I do I use sudo -s rather than sudo su. When you exit from vi you should see two lines :- crontab: no crontab for root - ...


5

You may want to check the following location, as this is where OS X stores crontabs: /usr/lib/cron/tabs/ There may be a crontab which is stored there which is running your job. This is a directory that needs root privileges to access, so you may need to drop into a root shell using the sudo -s command before you'll be able to go into this directory.


5

You can use cron to change the wake up time using pmset. E.g., say you want to run script1 at 1 am and script2 at 3 am. In root's crontab: 0 1 * * * /path/to/script1 0 1 * * * pmset repeat shutdown MTWRFSU 01:01:00 wakeorpoweron MTWRFSU 02:59:00 0 3 * * * /path/to/script2 0 3 * * * pmset repeat shutdown MTWRFSU 03:01:00 wakeorpoweron MTWRFSU 00:59:00 When ...


5

Use launchd instead of cron, at, or other legacy UNIX tools for Mac OS X. pmset pmset is a built-in command line tool for getting and setting power related values on Mac OS X. One of pmset's abilities is to add and remove entries from the IOPMQueue; the IOPMQueue is the IOKit level queue that allows your Mac to power on and wake up at a specific time. ...


5

When cron runs an event, it uses the default shell environment of the running UID. However, no "profile" customization is applied, i.e. your .bash_profile is not sourced and thus any PATH settings are not picked up. As well, I don't believe that the common profiles are picked up either. As such, you probably have no PATH or LD_LIBRARY_PATH environment ...


5

On macOS High Sierra (and perhaps earlier), cron is disabled in some configurations. There is, however, still a LaunchDaemon for it. Check to see if cron is enabled: sudo launchctl list | grep cron You should see com.vix.cron.plist if cron is running. If cron is not running, you should do: sudo launchctl load -w /System/Library/LaunchDaemons/com.vix.cron....


5

Redirect stderr to /dev/null as well as stdout: * * * * * /usr/bin/defaults delete com.apple.Spotlight userHasMovedWindow &> /dev/null * * * * * /usr/bin/defaults delete com.apple.Spotlight windowHeight &> /dev/null From trial and error it seems to be the stderr output of those commands that prevents the cronjob from exiting. I have no clue ...


5

So I found a relevant answer here: Cron job keeps running, not in any crontabs I don't think this question should be removed because this seems to be relevant to Catalina, even though it seems to be user error. Explanation: The root crontab had been edited at some point, with cron jobs that I created 6 years ago on my computer (I may have done this ...


4

It's tough to tell, but what if you added a second cron job to execute every 5 minutes or so and have it call some system built tool that logs messages to system.log? 0,5,10,15,20 * * * * /usr/bin/logger "cron is working" That way you'll know that cron is running for the user in question and can focus on either starting cron or fixing your script so it ...


4

It's been a while that you asked this question, but it seems that no solution came up in this thread. Depending on the way you create a user-crontab, it might be necessary to execute this after editing it: crontab ~/.yourcrontabfile To see if the new crontab (also after modifying it) has been activated, check with: crontab -l


4

Your cron error message are sent to the mail account of the user that is running the cron job. Type mail at the command line to see the messages. For a list of mail commands, see man mail. You should be getting mail with an error message something to the effect of: /bin/sh: -c: line 0: unexpected EOF while looking for matching `"' /bin/sh: -c: line 1: ...


4

The script errors because you have split the command in two lines. Basically you want to remove the newlines between the PATH and the kextunload lines, so it looks like this: #!/bin/sh PATH=/usr/local/bin:/usr/local/sbin:~/bin:/usr/bin:/bin:/usr/sbin:/sbin kextunload /System/Library/Extensions/AppleHDA.kext echo "Internal Speaker disabled" But you could ...


4

You are trying to create a launch agent with: the wrong extension (plis) in the wrong folder (/Library/LaunchAgents/ (suggested by the visible plists: java oracle/microsoft? updater, google keystone and teamviewer)) with the wrong app (TextWrangler) TextWrangler isn't compatible with macOS 10.13. Download BBEdit or another compatible editor and try it ...


3

In terminal: while :; do ./script_name; done or while :; do python programm.py; done If you want add some sleep time before run program again use 'sleep' command: For example: while :; do python programm.py; sleep 90; done in this example cycle will sleep 90 second before run again you program


3

The command for Mac OS X and Linux are the same: crontab -l This seems to indicate that the crontab is empty. Maybe edit the crontab with crontab -e and afterwards print out the crontab. Your changes should now be printed to console.


3

pmset is low level stuff, and doesn't really control running of code specifically, at least not in any direct or intended way. It controls things like turning your Mac on or off at specific times, similar to the way that you can do in System Preferences » Energy Saver. Generally speaking, you shouldn't ever need to use pmset for anything directly. cron is ...


3

You need to use a third party piece of software to send messages to the Notification Center from command line tools and scripts. terminal-notifier appears to be a popular solution. OSXDaily has an article walking through how to set terminal-notifier up. Alternative methods are covered in the answers to, how can I trigger a Notification Center notification ...


3

It's likely to be in the spool file: /var/mail/$user. Because sometimes your mailbox will contain important messages (a failed cronjob task, etc.) you don't to check it every time by yourself. Also, you can check man mail


Only top voted, non community-wiki answers of a minimum length are eligible