Skip to content

singhsaysdotcom/syncli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

syncli

Python CLI for Synology DSM.

Dependencies

  • Python 2.7 or greater
  • PyYaml
    • pip install pyyaml or easy_install pyyaml
  • requests
    • pip install requests or easy_install requests

Installation

pip install syncli

OR

git clone https://github.com/singhsaysdotcom/syncli.git ~/syncli

ln -sf ~/syncli/syncli/syncli.py /usr/local/bin/syncli

Usage

Basic syntax is syncli --host <hostname> <command>

syncli handles authentication in one of two ways. You can either specify a username and password as command line options

syncli --host <hostname> --username <username> --password <password> <command>

OR

you can put them in a configuration file ~/.syncli.yaml by default. The config file is a yaml file with the following structure.

host:
  username: <username>
  password: <password>

Credentials provided as command line arguments override values from the configuration file, if both exist.

**IMPORTANT: ** Currently authentication sends your credentials over http in plain text, so this is not safe to use at all over a public network or the internet. syncli defaults to 'http' (DSM default), but you override it with --proto=https.

Currently Supported Operations

  • reboot : reboots the device
$ syncli --host xxxxx reboot
Done
  • shutdown : shuts down the device
$ syncli --host xxxxx shutdown
Done
  • stats : prints stats from the resource monitor.
$ syncli --host xxxxx stats
cpu: 0% loadavg: 119 115 114
mem: 7% of 1GB
  • info : prints out system information
$ syncli --host xxxxx info
ntpenabled : True
ramsize : 1024
usbdev : []
usbbaselevel : 1
ntpserver : ntp.xxxxxxx.xxx
satadev : []
timezone : Melbourne
version : DSM 4.2-3211
systemp : 34
systime : 2013-07-03 05:53:39
optime : 15:32:13
model : DS412+
serial : XXXXXXXXXX
systempwarn : False
  • list_packages : lists all packages installed via the Package Manager.
$ syncli --host xxxxx list_packages
Plex Media Server (0.9.7.22.511-4b5280f)  -- stop
DHCP Server (1.0-2275)  -- running
CouchPotato Server (20130505-3)  -- stop
Python (2.7.5-6)  -- running
SABnzbd (0.7.12-6)  -- stop
SickBeard (20130103-5)  -- stop
  • available_packages : lists all packages available for installation.
$ syncli --host xxxxx available_packages
iTunes Server (1.1-2270)
VPN Server (1.1-2267)
Cloud Station (2.0-2402)
Time Backup (1.2-2278)
Surveillance Station (6.0-2636)
Mono (2.11.1-0004)
Syslog Server (2.1-2309)
...
  • start_package : start the named package.
$ syncli --host xxxxx --package 'Plex Media Server' start_package
Done
  • stop_package : stops the named package.
$ syncli --host xxxxx --package 'Plex Media Server' stop_package
Done

Releases

No releases published

Packages

No packages published

Languages