Sometimes you want to run one cronjob command at a time. Like rsync something or any other command which could interfere the next run. Imagine cronjob runs the rsync every 5 minutes. To avoid running multiple rsyncs at same time we can use helping script which creates the lock while rsync is running and removes it when rsync is done. So the script itself is below. Adapt it to your needs. Do you have idea how it can be improved or optimized? Leave a comment!
|
#!/bin/sh LOCKFILE=/tmp/script.lock if [ -e $LOCKFILE ]; then exit 1 else touch $LOCKFILE ionice -c3 rsync rm -f $LOCKFILE exit 0 fi |
UPD: you can add the trap to the script in case it gets killed accidentally, to remove the lockfile. Just before first if insert:
|
trap "{ rm -f $LOCKFILE ; exit 255; }" SIGTERM EXIT |