Creating Python Cron Job On Synology: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
Line 80: Line 80:
$ sudo sh bootstrap.sh
$ sudo sh bootstrap.sh
</syntaxhighlight>
</syntaxhighlight>
::* `ipkg` is installed in either `/opt/bin` or `/opt/sbin`, which are not in the default path. Either invoke `ipkg` using the full path, or add the path to the `PATH` environment variable.
::* The package sources must be added to `ipkg` with `sudo ipkg update`.
::* Now `ipkg` is ready to use with `sudo /opt/bin/ipkg install somepkg`

Revision as of 23:32, 31 March 2018

Objective

To install a python script on Synology NAS and run it as a cron job.

Prerequisites

python

Install Python3 using the Package Center app in the DSM.

pip

SSH to the DiskStation and install pip with

$ sudo curl -k https://bootstrap.pypa.io/get-pip.py | python3

This will install pip at /volume1/@appstore/py3k/usr/local/bin/, but the pip command isn't automatically available.

$ sudo ln -s /volume1/@appstore/py3k/usr/local/bin/pip /usr/local/bin/pip

This may be a viable alternative for installing pip:

$ sudo yum install python-pip
$ sudo pip install --upgrade pip

virtualenv

Once pip is installed, use it to install virtualenv, and make sure the command is available from the command line:

$ sudo pip install virtualenv
$ sudo ln -s /volume1/@appstore/py3k/usr/local/bin/virtualenv /usr/local/bin/virtualenv

Create a virtual environment for the python script:

$ virtualenv -p /volume1/@appstore/py3k/usr/local/bin/python3 venv

SSH key for GitHub

  • Generate a SSH key
  • Add the SSH key to the GitHub acccount
    • The instructions on that page say to use apt-get to install xclip. apt-get is not available on Synology.
    • Install ipkg instead.
      • First look up the CPU of the DiskStation: DSM > Control Panel > System > Info Center > General tab > Basic Information group > CPU
      • Alternatively, CPUs for all DiskStation models are listed here.
      • Download and install ipkg [1]
      • E.g. on DS213:
$ wget http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/stable/syno-mvkw-bootstrap_1.2-7_arm.xsh
$ sh syno-mvkw-bootstrap_1.2-7_arm.xsh

On DS213 running the script generated an error: Error: CPU not Marvell Kirkwood, probably wrong bootstrap.xsh

This error is fixed by editing ./bootstrap/bootstrap.sh to change line 21: [2]

/* from *
/
if ! grep Feroceon-KW /proc/cpuinfo >/dev/null 2>&1; then

/* to */ 

if ! grep Feroceon /proc/cpuinfo >/dev/null 2>&1; then

Then running ./boostrap/bootstrap.sh again (as sudo):

$ sudo sh bootstrap.sh
  • ipkg is installed in either /opt/bin or /opt/sbin, which are not in the default path. Either invoke ipkg using the full path, or add the path to the PATH environment variable.
  • The package sources must be added to ipkg with sudo ipkg update.
  • Now ipkg is ready to use with sudo /opt/bin/ipkg install somepkg