Search code examples
pythonbashcronrethinkdb

Problems running rethinkdb-dump from cron


I'm trying to setup regular backups of rethinkdb, but keep running into issues. How do you setup rethinkdb-dump to run from cron?

Here is my script:

$ cat backup.sh 
#!/bin/bash
NOW=$(date +"%Y-%m-%d-%H-%M")

/usr/bin/rethinkdb dump -e my_db -f /root/db_backup/$NOW.tar.gz

The script runs just fine when I run it manually. However, when try and run it from cron it doesn't work and I get the following at stderr:

Error when launching 'rethinkdb-dump': No such file or directory
The rethinkdb-dump command depends on the RethinkDB Python driver, which must be installed.
If the Python driver is already installed, make sure that the PATH environment variable
includes the location of the backup scripts, and that the current user has permission to
access and run the scripts.
Instructions for installing the RethinkDB Python driver are available here:
http://www.rethinkdb.com/docs/install-drivers/python/

It appears to be a Python environment issue, but I cannot figure out how to make it happy... thoughts? Help!


Solution

  • When you run it from that backup.sh script, it maybe run without correct PATH setup and cannot found the PATH of rethinkdb-dump.

    First, let find out where is rethinkdb-dump

    which rethinkdb-dump
    (on my pc, I guess it's very different on your pc)
    /usr/local/bin/rethinkdb-dump
    

    Now, try to append the PATH to your script backup.sh

    #!/bin/bash
    export PATH="$PATH:/path/to/folder/contain-rethinkdb-dump"
    # The rest of your script normally
    

    So take my example, I will put it like this:

    export PATH="$PATH:/usr/local/bin"
    

    I think your rethinkdb-dump live outside normal bin folder (/usr/bin, /usr/local/bin etc)