linux - Make a script identify DBUS session address and use it
2014-07
I'm using cron with notify-send to display some notifications, but it requires DBUS session to run
Here is the script:
export DBUS_SESSION_BUS_ADDRESS=[session]
#!/bin/sh
{
DISPLAY=:0 /usr/bin/notify-send Some text "More text"
}
I can find the current session with set | grep DBUS_SESSION_BUS_ADDRESS
How can i make the script do that and replace [session] with the found address?
Im using ubuntu 14.04, 64bit
Is there a command that can be run to verify that a users cron job has run successfully?
Platform is Ubuntu 8.04 LTS.
I have scripts in /home/useraccount/bin/
running
crontab -l
while logged in as user results in:
# m h dom mon dow command
@hourly /home/useraccount/bin/script_1
@hourly /home/locateruser/bin/script_2
I realize scripts could send email or write to a log with a timestamp, but wondering if there is just a way to verify it ran from the command line.
EDIT :
I ran
ps -ef|grep cron
... and it shows
root 4358 1 0 Mar12 ? 00:00:00 /usr/sbin/cron
Not sure if this indicates it is running the jobs though....
grep scriptname /var/log/syslog
/var/log/cron
you can check to if its currently running with:
ps aux
To make sure a script completed successfully one should really use a temp file. Create it when the job starts and delete it when it finished. This also catches crashes and avoids running the same job again in case of errors.
#!/bin/bash
# check if there is already a temp file with suffix .myscript in /tmp,
# if file exists return with status of 666
[ -f /tmp/*.bla ] && exit 666
# create a temp file with suffix .myscript
TEMP_FILE=`mktemp --suffix .myscript`
touch $TEMP_FILE
#
# script stuff
#
# we are done, clean-up after ourselves
rm $TEMP_FILE
You can also have results emailed to you.
30 3 * * * find /home/*/Maildir/.Spam/{new,cur}/ -type f -mtime +6 -delete| \
mail -e -s "task #1 report" [email protected]