On Wed, 2 Oct 2013 09:26:32 -0700 Rick Stevens <ricks@xxxxxxxxxxxxxx> wrote: > On 10/02/2013 08:10 AM, Ranjan Maitra issued this missive: > > Hi, > > > > I have a cron job running which yum updates all my machines once a day. > > All of these work fine. > > > > I also have a cron job which checks for kernel updates every hour and > > sends me a message if an updated kernel has been installed. Here is the > > relevant script: > > > > --- begin file called check-kernel.sh in my scripts/yum directory--- > > > > #!/bin/bash > > > > latestkernel=$(rpm -q kernel |tail -n1|sed -e 's/kernel-//') > > > > #echo "$latestkernel" > > > > if uname -a | grep -qv "$latestkernel"; then > > notify-send "Kernel UPDATE on ${HOSTNAME}: Running Kernel is $(uname > > -r) but lat est installed rpm is ${latestkernel}; REBOOT required" > > fi; > > > > > > --- end file called check-kernel.sh --- > > > > (A bit wordy, I know.) > > > > I have verified that this is executable and works from the commandline > > without any errors. > > > > I have the following set up via crontab -e: > > > > 0,15,30,45 * * * * nice -n 19 $HOME/.xplanet/download_xplanet_cloudmap > > 5 * * * * nice -n 19 $HOME/scripts/yum/check-kernel.sh > > > > The first line downloads cloudmaps for use with xplanet and works just > > fine (or appears to) and has done so for aeons. > > > > However, nothing happens (or appears to) for the second line. > > > > What is wrong here? > > The most common problem I've seen is that cron jobs typically have very > limited paths and the executables you're running (notify-send, uname) > may not be in the path the cronjob has. For giggles, do "echo $PATH" as > the user the cronjob will run as. Then build a cron job that echos > cron's concept of the path: > > #!/bin/bash > echo $PATH >/tmp/pathecho.txt > > and have cron run that once as the same user. Look at the data in > /tmp/pathecho.txt and I'll bet you'll find its far more restricted than > that of an interactive shell. I tried this: here is what I got -- $ echo $PATH /bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/home/user/bin $ cat /tmp/pathecho.txt /usr/bin:/bin Clearly more restrictive as you suggest. However, what I do not understand is why this does not "work" though. I do not understand because notify-send is in /usr/bin as well as in /bin: $ which notify-send notify-send is /bin/notify-send notify-send is /usr/bin/notify-send Both appear to be in the path. So where is the problem? I will also try the suggestions in the references in Matthew Miller's response now. Many thanks, Ranjan > To fix it, put in a > > PATH="data from the echo $PATH command" > > right after the "#!/bin/bash" line in your cron job. Since most of > your commands are in /bin, you could do: > > PATH=$PATH:/bin > > and that would probably suffice (just making sure /bin is in the cron's > path). -- Important Notice: This mailbox is ignored: e-mails are set to be deleted on receipt. Please respond to the mailing list if appropriate. For those needing to send personal or professional e-mail, please use appropriate addresses. ____________________________________________________________ FREE 3D EARTH SCREENSAVER - Watch the Earth right on your desktop! Check it out at http://www.inbox.com/earth -- users mailing list users@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe or change subscription options: https://admin.fedoraproject.org/mailman/listinfo/users Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines Have a question? Ask away: http://ask.fedoraproject.org