玩玩群辉NAS-常用命令行

玩玩群辉NAS-常用命令行

群辉中的系统命令或者套间命令大部分都是以syno开头的。

Syno

简单的 Node.js 包装器(包括浏览器)和用于 Synology DSM REST API 5.x6.xCLI(命令行界面)。阿

英文版:Synology Development Tool.

中文版:开发者工具

安装

只要安装模块

$ npm install syno

如果要将其另存为依赖项,只需添加该--save选项即可。

$ npm install syno --save

如果要使用CLI可执行文件进行安装,只需添加该--global选项。

$ npm install syno --global

配置

环境变量

在使用Syno前需要配置一些参数

$ export SYNO_ACCOUNT=user
$ export SYNO_PASSWORD=password
$ export SYNO_PROTOCOL=https   # 笔者这边为http,如果设置为https会报ssl错误
$ export SYNO_HOST=localhost
$ export SYNO_PORT=5001
配置文件
# Example config file, by default it should be located at:
# ~/.syno/config.yaml

url:
  protocol: https
  host: localhost
  port: 5001
  account: admin
  passwd: password

配置完成后就能正常使用命令行API了。

Syno API

这是对 Syno API 及其方法的简单介绍。要获取更多信息(参数、响应数据等),请参阅 Synology 开发者工具

  • DSM API
  • File Station API
  • Download Station API
  • Audio Station API
  • Video Station API
  • Video Station DTV API
  • Surveillance Station API

CLI

Commande selector
$ syno --help
  Usage: syno [options]

  Synology Rest API Command Line

  Options:

    -h, --help                       output usage information
    -c, --config <path>              DSM configuration file. Default to ~/.syno/config.yaml
    -u, --url <url>                  DSM URL. Default to https://admin:password@localhost:5001
    -p, --payload <payload>          JSON Payload
    -P, --pretty                     Prettyprint JSON Output
    -d, --debug                      Enabling Debugging Output
    -a, --api <version>              DSM API Version. Default to 6.0
    -i, --ignore-certificate-errors  Ignore certificate errors

  Commands:

    filestation|fs [options] <method>  DSM File Station API
    downloadstation|dl [options] <method>  DSM Download Station API
    audiostation|as [options] <method>  DSM Audio Station API

  Examples:

    $ syno filestation|fs getFileStationInfo
    $ syno downloadstation|dl getDownloadStationInfo
    $ syno audiostation|as getAudioStationInfo
DSM command
$ syno fs --help
  Usage: diskstationmanager|dsm [options] <method>

  DSM API

  Options:

    -h, --help                       output usage information
    -c, --config <path>              DSM configuration file. Default to ~/.syno/config.yaml
    -u, --url <url>                  DSM URL. Default to https://admin:password@localhost:5001
    -p, --payload <payload>          JSON Payload
    -P, --pretty                     Prettyprint JSON Output
    -d, --debug                      Enabling Debugging Output
    -a, --api <version>              DSM API Version. Default to 6.0
    -i, --ignore-certificate-errors  Ignore certificate errors

  Examples:

    $ syno diskstationmanager|dsm startFindme
    $ syno diskstationmanager|dsm getInfo --pretty'
    $ syno diskstationmanagercore|dsm listUsers
    $ syno diskstationmanagercore|dsm listPackages
File Station command
$ syno fs --help
  Usage: filestation|fs [options] <method>

  DSM File Station API

  Options:

    -h, --help                       output usage information
    -c, --config <path>              DSM configuration file. Default to ~/.syno/config.yaml
    -u, --url <url>                  DSM URL. Default to https://admin:password@localhost:5001
    -p, --payload <payload>          JSON Payload
    -P, --pretty                     Prettyprint JSON Output
    -d, --debug                      Enabling Debugging Output
    -a, --api <version>              DSM API Version. Default to 6.0
    -i, --ignore-certificate-errors  Ignore certificate errors

  Examples:

    $ syno filestation|fs listSharings
    $ syno filestation|fs list --pretty --payload '{"folder_path":"/path/to/folder"}'
Download Station command
$ syno dl --help
  Usage: downloadstation|dl [options] <method>

  DSM Download Station API

  Options:

    -h, --help                       output usage information
    -c, --config <path>              DSM configuration file. Default to ~/.syno/config.yaml
    -u, --url <url>                  DSM URL. Default to https://admin:password@localhost:5001
    -p, --payload <payload>          JSON Payload
    -P, --pretty                     Prettyprint JSON Output
    -d, --debug                      Enabling Debugging Output
    -a, --api <version>              DSM API Version. Default to 6.0
    -i, --ignore-certificate-errors  Ignore certificate errors

  Examples:

    $ syno downloadstation|dl createTask --payload '{"uri":"magnet|ed2k|ftp(s)|http(s)://link"}'
    $ syno downloadstation|dl listTasks
    $ syno downloadstation|dl listTasks --payload '{"limit":1}'
    $ syno downloadstation|dl getInfoTask --pretty --payload '{"id":"task_id"}'
Audio Station command
$ syno as --help
  Usage: audiostation|as [options] <method>

  DSM Audio Station API

  Options:

    -h, --help                       output usage information
    -c, --config <path>              DSM configuration file. Default to ~/.syno/config.yaml
    -u, --url <url>                  DSM URL. Default to https://admin:password@localhost:5001
    -p, --payload <payload>          JSON Payload
    -P, --pretty                     Prettyprint JSON Output
    -d, --debug                      Enabling Debugging Output
    -a, --api <version>              DSM API Version. Default to 6.0
    -i, --ignore-certificate-errors  Ignore certificate errors

  Examples:

    $ syno audiostation|as listSongs --payload '{"limit":1}'
    $ syno audiostation|as listAlbums
    $ syno audiostation|as searchSong --payload '{"title":"victoria"}'

Examples

没有配置文件
$ syno fs getInfo --url https://admin:synology@demo.synology.com:5001 --pretty
带有配置文件

# Example config file, by default it should be located at:
# ~/.syno/config.yaml

url:
  protocol: https
  host: localhost
  port: 5001
  account: admin
  passwd: password
$ syno fs geInfo --pretty

其他命令

备忘单

NAS 打印工作组:

$ synowin -getWorkgroup

加入一个新的 NAS 工作组:

$ synowin -joinWorkgroup <group>

打印一般信息:

$ synoservice --status

通过 cli 设置邮件:

$ synosyslogmail

检查升级:

$ synoupgrade --check 3

转储有关您的 nas 的数据:

$ syno_system_dump

打印网络信息,包括 当前双工:

$ synonet --show

打印当前主机名:

$ synonet --get_hostname

设置一个新的主机名:

$ synonet --set_hostname

设置新网关:

$ synonet --set_gateway gateway

WOL 唤醒:

$ synonet --wake xx:xx:xx:xx:xx:xx <interface>

打印分区布局表。

$ synopartition --list

分享

打印共享信息:

$ synoshare --get <sharefolder>

挂载一个共享的加密文件夹:

$ synoshare --enc_mount <sharefolder> <password>

卸载加密文件夹:

$ synoshare --enc_unmount <sharefolder>

允许删除:

$ synoshare --del {TRUE|FALSE} sharename1 sharename2 ... 

设置共享文件夹的描述(在文件浏览器的评论中查看)

$ synoshare --setdesc sharename desc

允许浏览共享文件夹

$ synoshare --setbrowse sharename browse_flag{0|1} 

重命名共享文件夹:

$ synoshare --rename  old_sharename new_sharename

设置允许浏览共享文件夹的用户:

$ synoshare --setuser sharename user_auth{NA|RO|RW} operator{+|-|=} user_name_list_with_comma

用户

打印有关用户的主要数据

sh-4.3# synouser --get wuseman
User Name   : [wuseman]
User Type   : [AUTH_LOCAL]
User uid    : [1026]
Primary gid : [100]
Fullname    : []
User Dir    : [/var/services/homes/wuseman]
User Shell  : [/bin/sh]
Expired     : [false]
User Mail   : []
Alloc Size  : [82]
Member Of   : [2]
(100) users
(101) administrators

设置新密码/更改密码:

$ synouser --setpw oldpassword newpassword

重命名用户:

$ synouser --rename old_username new_username

添加包含完整信息的用户名:

$ synouser --add [username pwd "full name" expired{0|1} mail privilege]

通知:

发送关于存储的电子邮件:

$ synostorage --mail

锁管理

$ synostorage --lock

调音功能:

获取当前的调优配置文件:

$ synotune --get   
Outut: Current Profile: performance_throughput

设置新功能,选项:

$ synotune --set    performance_throughput OR performance_latency

转储有关 Synology nas 的信息:

$ syno_system_dump

升级

将您的 nas 设置为自动处理升级:

$ synoupgrade --auto

检查您当前的升级设置:

$ synoupgrade --check

如果有新升级,请下载最新升级:

$ synoupgrade --download 

开始升级:

$ synoupgrade --start

检查分区布局表:

$ synopartition --check /dev/sd<X>

查看 Synology NFS 监视器:

$ synonfstop

重置 Synology NAS(仅限设置)

$ /usr/syno/sbin/./synodsdefault --reset

将 Synology Nas 重置为出厂默认设置(OBS OBS OBS 所有数据都将被擦除)

$ /usr/syno/sbin/./synodsdefault --factory-default

重新安装 Synology Nas Station,所有数据都将保留:

$ /usr/syno/sbin/./synodsdefault --reinstall; reboot

通过 cli 重新启动 NAS 的 SSHD 的正确方法:

$ synoservicectl --restart sshd

列出、卸载或安装 .spk 包文件(本地可用)

$ synopkg

安装一组网络和 ELF 二进制调试工具(并进入根会话)

$ synogear

写入和读取带有 key=value 对的 .ini 样式文件

$ synosetkeyvalue
$ synogetkeyvalue

关闭并关闭 NAS 电源(很像 shutdown -h now)

$ synopoweroff

显示已安装的包

$ synopkg list | sed 's/: .*$//' 

卸载一个包

$ sudo synopkg uninstall 

Synology 关机和关机

$ syno_poweroff_task

为本地用户设置/建立密码

$ synoauth local_username password

管理 IP 自动阻止功能

$ synoautoblock OPTIONS 

管理博客功能

$ synoblog_backup [-r|-b] p [-u username] [-o]

Synology 磁盘控制设备:类似于 /dev/hda 或 /dev/sda

$ syno_disk_ctl OPTIONS DEVICE  

Synology clear .tbd-文件工具

$ SYNOClearTdb FILE 

打印有关 NAS 的各种信息的不同方式

more /etc.defaults/VERSION 
cat /etc/synoinfo.conf
cat /proc/cmdline
synoshare --enum ALL 
synonet --show 
synodisk --enum 
synospace --enum -a 

重启索引

$ synoservicectl --restart synoindexd

检查升级

$ sudo synoupgrade --check

重启网络服务器

$ /usr/syno/sbin/synoservicecfg --restart httpd-user 
/usr/syno/sbin/synoservicectl --restart pkgctl-WebStation

为您可以控制的内容生成列表

$ /usr/syno/sbin/synoservice --list

DSM API - 提供 DSM 信息

$ syno dsm getInfo --pretty 

File Station API - 提供 File Station 信息

$ syno fs getInfo --pretty 

File Station API - 枚举给定文件夹中的文件

$ syno fs listFiles --payload '{"folder_path":"/path/to/folder"}' --pretty 

Download Station API - 列出下载任务

$ syno dl listFiles --payload '{"limit":5, "offset":10}' --pretty 

Download Station API - 创建下载任务

$ syno dl createTask --payload '{"uri":"https://link"}'

Audio Station API - 搜索歌曲

$ syno as searchSong --payload '{"title":"my_title_song"}' --pretty

Video Station API - 列出电影

$ syno vs listMovies --payload '{"limit":5}' --pretty

Video Station DTV API - 列出频道

$ syno dtv listChannels --payload '{"limit":1}' --pretty 

Surveillance Station API - 获取摄像机信息

$ syno ss getInfoCamera --payload '{"cameraIds":8}' --pretty 

重启、启用、停止 samba

$ /usr/syno/etc/rc.sysv/S80samba.sh --help

获取 Synology 日期

$ synodate --getSysDate

打印机的东西

$ synoprint

更新索引较旧

$ indexfolder --type={SHARE_CREATE|SHARE_REMOVE} --share=<SHARED_FOLDER> --share_path=<SHARED_FOLDER>

启动媒体服务器

$ /usr/syno/bin/mediaserver.sh start

小心,杀死 NAS

$ servicetool --get-service-volume download 

如果丢失,获取 2FA 密钥

$ ssh root@nas cat /usr/syno/etc/preference/wuseman/google_authenticator

以一种非常奇特的方式列出磁盘信息

$ dhm_tool -s 

群晖自动封锁

将 IP 添加到自动阻止数据库:

$ synoautoblock --deny <ip-address>

重置错误添加的IP:

$ synoautoblock --reset <ip-address>

将任意 IP 添加到白名单:

$ synoautoblock --in-white-list <ip-address>

调试和系统健康:

调试粉丝并通过电子邮件发送结果(如果已设置电子邮件)

$ syno_fan_debug

运行系统运行状况检查并在完成后通过电子邮件发送结果:

$ syno_disk_health_record

检查~剩余寿命:

$ syno_disk_remain_life_check

运行 smartmontools 并在完成后发送电子邮件:

$ syno_disk_smart_mail_send

调试休眠:

$ syno_hibernation_debug

LED(获取最小值和最大值:/usr/syno/etc.defaults/led_brightness.xml)

获取当前设置:

$ syno_led_brightness --get (Default on DS416: 1985157252)

设置新设置:

$ syno_led_brightness --set <brightness> 

带宽

打印用户带宽使用情况:

$ synobandwidth --status [<list=user|group|all(default)> <transfer=upload|download|all(default)>] <merge=0|1(default)>]

为用户设置新的带宽限制:

$ synobandwidth --set-global-conf <state=enabled|disabled> [<protocol=filestation|webdav|ftp|rsync|all(default)>

按用户打印所有服务的状态:

$ sh-4.3# synobandwidth --preview wuseman
Protocol     Upload   Download
filestation  0.00       0.00
webdav       0.00       0.00
ftp          0.00       0.00
rsync        0.00       0.00

ISCI

Synology iSCSI 性能分析器

$ synoiscsitop40

扇子

设置风扇配置(最响的听起来像飞机)

$ synofanconfig -parseXML 1000000

Reference

https://github.com/kwent/syno

https://www.imnks.com/2052.html