[kdepim-users] kabcclient export script don't work with cron

Ingo Klöcker kloecker at kde.org
Sun Dec 18 14:32:10 GMT 2011


On Thursday 17 November 2011, Andreas Zeller wrote:
> Am 16.11.2011, 15:35 Uhr, schrieb Kevin Krammer 
<kevin.krammer at gmx.at>:
> > On Wednesday, 2011-11-16, Andreas Zeller wrote:
> >> Am 16.11.2011, 13:50 Uhr, schrieb Kevin Krammer 
<kevin.krammer at gmx.at>:
> >> > On Wednesday, 2011-11-16, Andreas Zeller wrote:
> >> >> I don't know, whether it's a PIM-problem. If not, please tell
> >> >> me.
> >> >> 
> >> >> I make scheduled backups with cron, that works fine.
> >> >> 
> >> >> # /etc/crontab: system-wide crontab
> >> >> # Unlike any other crontab you don't have to run the `crontab'
> >> >> # command to install the new version when you edit this file
> >> >> # and files in /etc/cron.d. These files also have username
> >> >> fields, # that none of the other crontabs do.
> >> >> SHELL=/bin/sh
> >> >> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/b
> >> >> in # m h dom mon dow user	command
> >> >> 17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
> >> >> 25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / &&
> >> >> run-parts --report
> >> >> /etc/cron.daily )
> >> >> 47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / &&
> >> >> run-parts --report
> >> >> /etc/cron.weekly )
> >> >> 52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / &&
> >> >> run-parts --report
> >> >> /etc/cron.monthly )
> >> >> 0	10-20	*	*	*	root	/home/USER/Scripte/SicherungAufNAS
> >> >> 30	10-20	*	*	*	root
> > 
> > /home/USER/Scripte/KAddressbook_Export_vCard
> > 
> >> > Doesn't that mean that the script will run as user root?
> >> > 
> >> >> Now I want to export KAddressbook contacts within a script.
> >> >> 
> >> >> #!/bin/sh
> >> >> # KAddressbook_Export_vCard
> >> >> kabcclient -L > /home/USER/contacts_hourly_backkup.vcf
> >> >> #
> >> >> 
> >> >> As a script started manually in the console, it works fine. But
> >> >> if
> >> 
> >> cron
> >> 
> >> >> starts the script, only an empty file is created.
> >> > 
> >> > Assuming the "root" in the user fields means the script is
> >> > executed as root,
> >> > does root have a KDE addressbook?
> >> 
> >> I also tried cron with
> >> 
> >> 30	10-20	*	*	*	USER
> > 
> > /home/USER/Scripte/KAddressbook_Export_vCard
> > 
> >> and as script
> >> 
> >> env USER=USER HOME=/home/USER kabcclient -L >
> >> /home/USER/contacts_hourly_backkup.vcf
> >> 
> >> both doesn't work. Every time an empty file is created.
> > 
> > In this case I expect the problem to be different environment from
> > when you run
> > it manually.
> > 
> > Run your normal desktop session as a different user and try the
> > script manually
> > in a shell where you su - into, i.e. so that the current user's
> > environment
> > gets discarded.
> > 
> > It might also help to redirect stderr of the application into a
> > file for checking if it reported any errors, i.e.
> > 
> >  2> /home/USER/contacts_hourly_backup.err
> 
> redirecting stderr - I love it to learn something new!
> 
> If I start the script
> 
>     kabcclient -L > /home/USER/contacts_hourly_backkup.vcf 2>
> /home/USER/contacts_hourly_backup.err
> 
> manually, witch exports the contacts correctly,
> contacts_hourly_backup.err contains
> 
>     kabcclient(3768)/kio (KDirWatch) KDirWatchPrivate::removeEntry:
> doesn't know "/home/USER/.kde/share/apps/kabc"
> 
> If cron starts the same script, it creates an empty
> contacts_hourly_backkup.vcf  and also an empty
> contacts_hourly_backup.err
> 
> So there is no error, why?

[I'm just catching up on old mail...]

Did you manage to solve your problem in the meantime?

That no error is written to stderr doesn't mean that there is no error. 
It just means that the error is not logged. :/

There are a number of things that might go wrong:
- Maybe some environment variable is missing when the script is run by 
cron.
- Maybe there is a problem with starting the background services 
(Akonadi, etc.) that are required by kabcclient.

Does it work if you are logged in/not logged in?

Try running kabcclient via strace to find out what the application is 
doing, e.g.
  strace -o /tmp/kabcclient.strace -L 
>/home/USER/contacts_hourly_backkup.vcf

Compare the output you get if you run this command manually with the 
output you get if cron runs the command.


Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kdepim-users/attachments/20111218/25f0e96b/attachment.sig>
-------------- next part --------------
_______________________________________________
KDE PIM users mailing list
Subscription management: https://mail.kde.org/mailman/listinfo/kdepim-users


More information about the kdepim-users mailing list