well, it's true that pilerimport has no pid file, locking, and
other fancy features. The reason behind is that you can run multiple
pilerimport processes speeding up the import - provided that you
have the required horse power.

However you may emulate lockfile support, see util/indexer.delta.sh
for an example:

#!/bin/bash

MAINTMPFILE=/var/run/piler/import.tmp

if [ -f $MAINTMPFILE ]; then echo "import is already running. It started at "`cat $MAINTMPFILE` | logger -p mail.error ; exit 1; fi

date > $MAINTMPFILE

function finish {
   rm -f $MAINTMPFILE
}

trap finish EXIT

cd /var/piler/imap
/usr/local/bin/pilerimport -i ... -u ... -p .....


Thus if pilerimport is running for a long time, the next iteration will
quit, and syslogs the problem.


Janos



On 2015-02-02 18:43, Philip Deubner wrote:
Thank you for your feedback, just some more questions:
The most important question would be how to get the last two lines
into a periodical pull via cron.

* * * * * cd /var/run/pilerimport && su piler -c "pilerimport -i
'host' -u 'user' -p 'password' -P 143 -x '' "

This looks just like my initial setup:

*/15 * * * * cd /home/piler && pilerimport -i host -u user -p
verysecretandstrongpassword

Where is the difference?

run the following from terminal

mkdir -P /var/run/pilerimport
chmod 777 /var/run/pilerimport
cd /var/run/pilerimport
su piler -c "pilerimport -i 'host' -u 'user' -p 'password' -P 143 -x '' "

^^note there are single ' and " double quotes.. the -x '' <= are 2x single quotes

BTW, contact us if you need a proper admin/company to manage your piler server.

On 2/2/2015 6:21 PM, Philip Deubner wrote:

I disagree with the approach from experience.

Rather write a simple shell script that does a few things.

*** set a pid in /var/run/ to prevent the script from spawning multiple times..

Your idea is to spawn a new process every 15mins.. however the pilerimport could still be running... this will eventually lead to a lock of either the imap server or your pilerimport host.

Never use the harddrive as a store for temporary files, you will lag your disk i/o and cause excessive wear.

*** set the tempory directory to /var/shm this is a "ram drive" available on all linux systems, so the temp files will be stored in memory reducing disk i/o to zero and reducing lag.

*** in the script create a temp dir with mkdir -p /var/shm/pilerimport and set the permission to 777, to avoid any permission errors.

Make sure piler import is run as piler user

*** su piler -c "pilerimport"

Well, that would definetely be a fancy script... But honestly, I currently have no idea on how to do such (setting the pid and setting the temporary directory). So if you have an idea on where I can search to solve these issues, please tell me. Apart from that, the problem would likely be the same, wouldn't it? Finally, I would have to call the script using cron ans telling cron to have the commands run in a certain directory - which already currently does not work. So, from my point of view, this should be the first problem to deal with - or am I wrong?
bg,

Philip




Reply via email to