Creating Python Cron Job On Synology: Difference between revisions

From Littledamien Wiki
Jump to navigation Jump to search
No edit summary
Line 50: Line 50:
* [https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#platform-linux Generate a SSH key]
* [https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/#platform-linux Generate a SSH key]
* [https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/#platform-linux Add the SSH key to the GitHub acccount]
* [https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/#platform-linux 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.
** The instructions on that page say to use `apt-get` to install `xclip`. `apt-get` is not available on Synology. `xclip` is being installed to copy the contents of the ssh key file from the command line, however `xclip` doesn't seem to be readily available for Synology, so open up the key file and manually copy its contents instead.
** 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 [https://www.synology.com/en-global/knowledgebase/DSM/tutorial/General/What_kind_of_CPU_does_my_NAS_have here].
*** Download and install `ipkg` <ref>[http://howden.net.au/thowden/2014/10/synology-installation-of-ipkg-dsm-yum-or-apt-get-equivalent/ Synology installation of ipkg DSM yum or apt-get equivalent]</ref>
*** E.g. on DS213:
<syntaxhighlight lang="bash">
$ 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
</syntaxhighlight>


On DS213 running the script generated an error: `Error: CPU not Marvell Kirkwood, probably wrong bootstrap.xsh`
== Notes ==
 
<references />
This error is fixed by editing `./bootstrap/bootstrap.sh` to change line 21: <ref>[https://forum.synology.com/enu/viewtopic.php?t=30764 IPKG for DS211] - Synology Forums</ref>
 
<pre>
/* from *
/
if ! grep Feroceon-KW /proc/cpuinfo >/dev/null 2>&1; then
 
/* to */
 
if ! grep Feroceon /proc/cpuinfo >/dev/null 2>&1; then
</pre>
 
Then running `./boostrap/bootstrap.sh` again (as `sudo`):
 
<syntaxhighlight lang="bash">
$ sudo sh bootstrap.sh
</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:38, 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. xclip is being installed to copy the contents of the ssh key file from the command line, however xclip doesn't seem to be readily available for Synology, so open up the key file and manually copy its contents instead.

Notes