Debian系统自带sshd解决不支持账号密码认证和自动断开问题

Debian10.2系统自带sshd解决不支持账号密码认证和自动断开问题

sed -i ‘s/PermitRootLogin no/PermitRootLogin yes/g’ /etc/ssh/sshd_config
sed -i ‘s/PasswordAuthentication no/PasswordAuthentication yes/g’ /etc/ssh/sshd_config
service ssh restart

Debian 10

或10.3
sed -i ‘s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g’ /etc/ssh/sshd_config
sed -i ‘s/#PasswordAuthentication yes/PasswordAuthentication yes/g’ /etc/ssh/sshd_config

 

service ssh restart #SSH重启
———————————————

debian10.2系统自带的ssh服务,在实际使用的时候,出现如下两个问题:

①账号密码方式不支持;

②客户端使用SecureCRT连接Debian的sshd后,无操作过一会会自己断开。

vim /etc/ssh/sshd_config
我修改如下几处内容:

PasswordAuthentication yes
TCPKeepAlive yes
ClientAliveCountMax 360
其中PasswordAuthentication是让sshd支持账号密码形式的认证。TCPKeepAlive是sshd和客户端有保活机制。ClientAliveCountMax指的是如果客户端这些次都没有相应,就关闭连接。
————————————————
版权声明:本文为CSDN博主「黑色之光_duan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/microsko/article/details/104270002

Linux ls 命令

Linux 命令大全 Linux 命令大全

Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。

语法

 ls [-alrtAFR] [name...]

参数 :

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 “.” (目前目录) 及 “..” (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 “*”, 目录则加 “/”
  • -R 若目录下有文件,则以下之文件亦皆依序列出

实例

列出根目录(\)下的所有目录:

# ls /
bin               dev   lib         media  net   root     srv  upload  www
boot              etc   lib64       misc   opt   sbin     sys  usr
home  lost+found  mnt    proc  selinux  tmp  var

列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :

ls -ltr s*

将 /bin 目录以下所有目录及文件详细资料列出 :

ls -lR /bin

列出目前工作目录下所有文件及目录;目录于名称后加 “/”, 可执行档于名称后加 “*” :

ls -AF

Linux 命令大全 Linux 命令大全

1 篇笔记写笔记

  1.    rapattern

      rap***ern@foxmail.com

      参考地址

    84

    [root@localhost ~]# ls -ahl

    total 28K

    dr-xr-x—.  2 root root  135 Dec 16 02:34 .

    dr-xr-xr-x. 17 root root  224 Dec 14 01:38 ..

    -rw——-.  1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg

    -rw——-.  1 root root 1.2K Dec 16 02:34 .bash_history

    -rw-r–r–.  1 root root   18 Dec 28  2013 .bash_logout

    -rw-r–r–.  1 root root  176 Dec 28  2013 .bash_profile

    -rw-r–r–.  1 root root  176 Dec 28  2013 .bashrc

    -rw-r–r–.  1 root root  100 Dec 28  2013 .cshrc

    -rw-r–r–.  1 root root  129 Dec 28  2013 .tcshrc

    从上面可以看到,每一行都有7列,分别是:

    1. 第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,d表示可随机存取的设备,如U盘等,c表示一次性读取设备,如鼠标、键盘等。后9位,依次对应三种身份所拥有的权限,身份顺序为:owner、group、others,权限顺序为:readable、writable、excutable。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限
    2. 第二列表示链接数,表示有多少个文件链接到inode号码。
    3. 第三列表示拥有者
    4. 第四列表示所属群组
    5. 第五列表示文档容量大小,单位字节
    6. 第六列表示文档最后修改时间,注意不是文档的创建时间哦
    7. 第七列表示文档名称。以点(.)开头的是隐藏文档
    rapattern

       rapattern

      rap***ern@foxmail.com

      参考地址

    12个月前 (01-14)

chmod命令目录或文件的属主、属组、其它权限修改

Linux chmod命令

Linux 命令大全 Linux 命令大全

Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令

Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

使用权限 : 所有使用者

语法

chmod [-cfvR] [--help] [--version] mode file...

参数说明

mode : 权限设定字串,格式如下 :

[ugoa...][[+-=][rwxX]...][,...]

其中:

  • u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
  • + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
  • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。

其他参数说明:

  • -c : 若该文件权限确实已经更改,才显示其更改动作
  • -f : 若该文件权限无法被更改也不要显示错误讯息
  • -v : 显示权限变更的详细资料
  • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
  • –help : 显示辅助说明
  • –version : 显示版本

符号模式

使用符号模式可以设置多个项目:who(用户类型),operator(操作符)和 permission(权限),每个项目的设置可以用逗号隔开。 命令 chmod 将修改 who 指定的用户类型对文件的访问权限,用户类型由一个或者多个字母在 who 的位置来说明,如 who 的符号模式表所示:

who 用户类型 说明
u user 文件所有者
g group 文件所有者所在组
o others 所有其他用户
a all 所用用户, 相当于 ugo

operator 的符号模式表:

Operator 说明
+ 为指定的用户类型增加权限
- 去除指定用户类型的权限
= 设置指定用户权限的设置,即将用户类型的所有权限重新设置

permission 的符号模式表:

模式 名字 说明
r 设置为可读权限
w 设置为可写权限
x 执行权限 设置为可执行权限
X 特殊执行权限 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
s setuid/gid 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t 粘贴位 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r– 100
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 –x 001
0 000

例如, 765 将这样解释:

  • 所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
  • 用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
  • 其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。

实例

将文件 file1.txt 设为所有人皆可读取 :

chmod ugo+r file1.txt

将文件 file1.txt 设为所有人皆可读取 :

chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :

chmod ug+w,o-w file1.txt file2.txt

为 ex1.py 文件拥有者增加可执行权限:

chmod u+x ex1.py

将目前目录下的所有文件与子目录皆设为任何人可读取 :

chmod -R a+r *

此外chmod也可以用数字来表示权限如 :

chmod 777 file

语法为:

chmod abc file

其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。

r=4,w=2,x=1

  • 若要 rwx 属性则 4+2+1=7;
  • 若要 rw- 属性则 4+2=6;
  • 若要 r-x 属性则 4+1=5。
chmod a=rwx file

chmod 777 file

效果相同

chmod ug=rwx,o=x file

chmod 771 file

效果相同

若用 chmod 4755 filename 可使此程序具有 root 的权限。

更多说明

命令 说明
chmod a+r file 给file的所有用户增加读权限
chmod a-x file 删除file的所有用户的执行权限
chmod a+rw file 给file的所有用户增加读写权限
chmod +rwx file 给file的所有用户增加读写执行权限
chmod u=rw,go= file 对file的所有者设置读写权限,清空该用户组和其他用户对file的所有权限(空格代表无权限)
chmod -R u+r,go-r docs 对目录docs和其子目录层次结构中的所有文件给用户增加读权限,而对用户组和其他用户删除读权限
chmod 664 file 对file的所有者和用户组设置读写权限, 为其其他用户设置读权限
chmod 0755 file 相当于u=rwx (4+2+1),go=rx (4+1 & 4+1)0 没有特殊模式。
chmod 4755 file 4设置了设置用户ID位,剩下的相当于 u=rwx (4+2+1),go=rx (4+1 & 4+1)。
find path/ -type d -exec chmod a-x {} \; 删除可执行权限对path/以及其所有的目录(不包括文件)的所有用户,使用’-type f’匹配文件
find path/ -type d -exec chmod a+x {} \; 允许所有用户浏览或通过目录path/

Linux 命令大全 Linux 命令大全

1.1.常见权限说明

目录默认权限:755,文件默认权限:644

目录和文件常见权限值:

 

  • 目录:755 750 700
  • 文件:644 640 600

2.系统帮助

  1. 用法:chmod [选项]… 模式[,模式]… 文件…
  2.  或:chmod [选项]… 八进制模式 文件…
  3.  或:chmod [选项]… reference=参考文件 文件…
  4. Change the mode of each FILE to MODE.
  5. With reference, change the mode of each FILE to that of RFILE.
  6.  
  7. c, changes like verbose but report only when a change is made
  8. f, silent, quiet suppress most error messages
  9. v, verbose output a diagnostic for every file processed
  10. nopreserveroot do not treat ‘/’ specially (the default)
  11. preserveroot fail to operate recursively on ‘/’
  12. reference=RFILE use RFILE‘s mode instead of MODE values
  13. -R, –recursive 权限递归
  14. –help 显示此帮助信息并退出
  15. –version 显示版本信息并退出
  16.  
  17. Each MODE is of the form ‘[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][07]+‘.
  18.  
  19. GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
  20. 请向<http://translationproject.org/team/zh_CN.html> 报告chmod 的翻译错误
  21. 要获取完整文档,请运行:info coreutils ‘chmod invocation

3.图解

chmod命令目录或文件的属主、属组、其它权限修改

文件下载   文件名称:文件权限图.vsdx   文件大小:34.7kb
  下载声明:本站文件大多来自于网络,仅供学习和研究使用,不得用于商业用途,如有版权问题,请联系我!
  下载地址:点击下载

提取密码:

 

注意:本段内容须成功“回复本文”后“刷新本页”方可查看!

 

 

4.示例

4.1.移除用户写权限

  1. [root@itbkz s]#mkdir mulu
  2. [root@itbkz s]#touch mulu/test.txt
  3. [root@itbkz s]#ll -d mulu
  4. drwxrxrx 2 root root 22 12 5 17:00 mulu
  5. [root@itbkz s]#ll mulu/test.txt
  6. rwrr 1 root root 0 12 5 17:00 mulu/test.txt
  7. 方法1
  8. [root@itbkz s]#chmod u=rx mulu
  9. [root@itbkz s]#ll -d mulu
  10. drxrxrx 2 root root 22 12 5 17:00 mulu
  11. 方法2
  12. [root@itbkz s]#chmod u-w mulu
  13. [root@itbkz s]#ll -d mulu
  14. drxrxrx 2 root root 22 12 5 17:00 mulu
  15. 方法3
  16. [root@itbkz s]#chmod 555 mulu
  17. [root@itbkz s]#ll -d mulu
  18. drxrxrx 2 root root 22 12 5 17:00 mulu

4.2.增加属组写权限

  1. 方法1
  2. [root@itbkz s]#chmod g+w mulu
  3. [root@itbkz s]#ll -d mulu
  4. drwxrwxrx 2 root root 22 12 5 17:00 mulu
  5. 方法2
  6. [root@itbkz s]#chmod g=rwx mulu
  7. [root@itbkz s]#ll -d mulu
  8. drwxrwxrx 2 root root 22 12 5 17:00 mulu
  9. 方法3
  10. [root@itbkz s]#chmod 775 mulu
  11. [root@itbkz s]#ll -d mulu
  12. drwxrwxrx 2 root root 22 12 5 17:00 mulu

4.3.增加其它写权限

  1. 方法1
  2. [root@itbkz s]#chmod o+w mulu
  3. [root@itbkz s]#ll -d mulu
  4. drwxrxrwx 2 root root 22 12 5 17:00 mulu
  5. 方法2
  6. [root@itbkz s]#chmod o=rwx mulu
  7. [root@itbkz s]#ll -d mulu
  8. drwxrxrwx 2 root root 22 12 5 17:00 mulu
  9. 方法3
  10. [root@itbkz s]#chmod 757 mulu
  11. [root@itbkz s]#ll -d mulu
  12. drwxrxrwx 2 root root 22 12 5 17:00 mulu

4.4.相同权限修改

  1. 方法1
  2. [root@itbkz s]#chmod go=rwx mulu
  3. [root@itbkz s]#ll -d mulu
  4. drwxrwxrwx 2 root root 22 12 5 17:00 mulu
  5. 方法2
  6. [root@itbkz s]#chmod 777 mulu
  7. [root@itbkz s]#ll -d mulu
  8. drwxrwxrwx 2 root root 22 12 5 17:00 mulu

4.5.不同权限修改

  1. 方法1
  2. [root@itbkz s]#chmod u=rx,g=rwx,o=rwx mulu
  3. [root@itbkz s]#ll -d mulu
  4. drxrwxrwx 2 root root 22 12 5 17:00 mulu
  5. 方法2
  6. [root@itbkz s]#chmod u=rx,go=rwx mulu
  7. [root@itbkz s]#ll -d mulu
  8. drxrwxrwx 2 root root 22 12 5 17:00 mulu
  9. 方法3
  10. [root@itbkz s]#chmod 577 mulu
  11. [root@itbkz s]#ll -d mulu
  12. drxrwxrwx 2 root root 22 12 5 17:00 mulu

4.6.删除全部权限

  1. 方法1
  2. [root@itbkz s]#chmod a= mulu
  3. [root@itbkz s]#ll -d mulu
  4. d——— 2 root root 22 12 5 17:00 mulu
  5. 方法2
  6. [root@itbkz s]#chmod 000 mulu
  7. [root@itbkz s]#ll -d mulu
  8. d——— 2 root root 22 12 5 17:00 mulu
  9. 方法3
  10. [root@itbkz s]#chmod =0 mulu
  11. [root@itbkz s]#ll -d mulu
  12. d——— 2 root root 22 12 5 17:00 mulu

4.7.权限递归

  1. 方法1
  2. [root@itbkz s]#chmod -R 700 mulu
  3. [root@itbkz s]#ll -d mulu mulu/test.txt
  4. drwx—— 2 root root 22 12 6 22:21 mulu
  5. rwx—— 1 root root 0 12 6 22:21 mulu/test.txt
  6. 方法2
  7. [root@itbkz s]#chmod -R u=rwx,go= mulu
  8. [root@itbkz s]#ll -d mulu mulu/test.txt
  9. drwx—— 2 root root 22 12 6 22:24 mulu
  10. rwx—— 1 root root 0 12 6 22:24 mulu/test.txt
将会修改目录和目录下目录及文件的所有权限

5.注意

  1. [root@itbkz s]#chmod 7777 mulu
  2. [root@itbkz s]#ll
  3. 总用量 0
  4. drwsrwsrwt 2 root root 6 12 5 23:34 mulu
  5. [root@itbkz s]#chmod 7666 mulu
  6. [root@itbkz s]#ll
  7. 总用量 0
  8. drwSrwSrwT 2 root root 6 12 5 23:34 mulu

chown命令将目录或文件的拥有者、拥有组改为指定的用户或组

Linux chown 命令

Linux 命令大全 Linux 命令大全

Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 。

chown 需要超级用户 root 的权限才能执行此命令。

只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

使用权限 : root

语法

chown [-cfhvR] [--help] [--version] user[:group] file...

参数 :

  • user : 新的文件拥有者的使用者 ID
  • group : 新的文件拥有者的使用者组(group)
  • -c : 显示更改的部分的信息
  • -f : 忽略错误信息
  • -h :修复符号链接
  • -v : 显示详细的处理信息
  • -R : 处理指定目录以及其子目录下的所有文件
  • –help : 显示辅助说明
  • –version : 显示版本

实例

把 /var/run/httpd.pid 的所有者设置 root:

chown root /var/run/httpd.pid

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

chown runoob:runoobgroup file1.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

chown -R runoob:runoobgroup *

把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

chown :512 /home/runoob

Linux 命令大全 Linux 命令大全

2.系统帮助

  1. 用法:chown [选项]… [所有者][:[组]] 文件…
  2.  或:chown [选项]… reference=参考文件 文件…
  3. Change the owner and/or group of each FILE to OWNER and/or GROUP.
  4. With reference, change the owner and group of each FILE to those of RFILE.
  5.  
  6. c, changes like verbose but report only when a change is made
  7. f, silent, quiet suppress most error messages
  8. v, verbose output a diagnostic for every file processed
  9. dereference affect the referent of each symbolic link (this is
  10. the default), rather than the symbolic link itself
  11. h, nodereference affect symbolic links instead of any referenced file
  12. (useful only on systems that can change the
  13. ownership of a symlink)
  14. from=当前所有者:当前所属组
  15. 只当每个文件的所有者和组符合选项所指定时才更改所
  16. 有者和组。其中一个可以省略,这时已省略的属性就不
  17. 需要符合原有的属性。
  18. nopreserveroot do not treat ‘/’ specially (the default)
  19. preserveroot fail to operate recursively on ‘/’
  20. reference=RFILE use RFILE‘s owner and group rather than
  21. specifying OWNER:GROUP values
  22. -R, –recursive 权限递归
  23.  
  24. The following options modify how a hierarchy is traversed when the -R
  25. option is also specified. If more than one is specified, only the final
  26. one takes effect.
  27.  
  28. -H if a command line argument is a symbolic link
  29. to a directory, traverse it
  30. -L traverse every symbolic link to a directory
  31. encountered
  32. -P do not traverse any symbolic links (default)
  33.  
  34. –help 显示此帮助信息并退出
  35. –version 显示版本信息并退出
  36.  
  37. Owner is unchanged if missing. Group is unchanged if missing, but changed
  38. to login group if implied by a ‘:‘ following a symbolic OWNER.
  39. OWNER and GROUP may be numeric as well as symbolic.
  40.  
  41. 示例:
  42. chown root /u 将 /u 的属主更改为”root”。
  43. chown root:staff /u 和上面类似,但同时也将其属组更改为”staff”。
  44. chown -hR root /u 将 /u 及其子目录下所有文件的属主更改为”root”。
  45.  
  46. GNU coreutils online help: <http://www.gnu.org/software/coreutils/>
  47. 请向<http://translationproject.org/team/zh_CN.html> 报告chown 的翻译错误
  48. 要获取完整文档,请运行:info coreutils ‘chown invocation

3.示例

3.1.更改拥有者

  1. [root@itbkz s]#mkdir mulu
  2. [root@itbkz s]#touch mulu/test.txt
  3. [root@itbkz s]#ll -d mulu
  4. drwxrxrx 2 root root 22 12 5 17:00 mulu
  5. [root@itbkz s]#ll mulu/test.txt
  6. rwrr 1 root root 0 12 5 17:00 mulu/test.txt
  7. [root@itbkz s]#ll
  8. 总用量 0
  9. drwxrxrx 2 root root 22 12 5 17:00 mulu
  10. [root@itbkz s]#chown itbkz mulu
  11. [root@itbkz s]#ll
  12. 总用量 0
  13. drwxrxrx 2 itbkz root 22 12 5 17:00 mulu

3.2.更改拥有组

  1. [root@itbkz s]#chown .itbkz mulu
  2. [root@itbkz s]#ll
  3. 总用量 0
  4. drwxrxrx 2 root itbkz 22 12 5 17:00 mulu

3.3.更改拥有者和组

  1. [root@itbkz s]#chown itbkz:itbkz mulu
  2. [root@itbkz s]#ll
  3. 总用量 0
  4. drwxrxrx 2 itbkz itbkz 22 12 5 17:00 mulu

3.4.拥有用户及组权限递归

  1. 方法1
  2. [root@itbkz s]#chown -R itbkz:itbkz mulu
  3. [root@itbkz s]#ll -d mulu
  4. drwxrxrx 2 itbkz itbkz 22 12 5 17:00 mulu
  5. [root@itbkz s]#ll mulu/test.txt
  6. rwrr 1 itbkz itbkz 0 12 5 17:00 mulu/test.txt
  7. 方法2
  8. [root@itbkz s]#chown -R itbkz.itbkz mulu
  9. [root@itbkz s]#ll -d mulu
  10. drwxrxrx 2 itbkz itbkz 22 12 5 17:00 mulu
  11. [root@itbkz s]#ll mulu/test.txt
  12. rwrr 1 itbkz itbkz 0 12 5 17:00 mulu/test.txt

手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2020-04-05 16:49:41 1715点赞 11924收藏 870评论

创作立场声明:最系统的一篇黑群晖NAS的安装方式以及折腾玩法,还有硬件解码等功能,强烈建议先收藏,再观看,看完记得点赞哦!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

前言

大家好!俺又来了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

还是有很多值友不会安装黑群晖NAS,但是居然能通过各种神秘渠道,找到我,每次用群晖都要我手把手教!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

虽然我写了很多关于黑群晖NAS系统的搭建文章,可始终没有完整系统的写一篇,所以今天就来系统的写一下,不说废话直接干货走起黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

本文适合将旧电脑、或者新DIY的NAS小伙伴们观看!最合适8-9代处理器,需要集成显卡加速转码的玩家。

不懂NAS为何物的朋友,请观看我这篇文章后,再回来继续阅读:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

从万元到百元:家用的NAS存储设备推荐及经验分享,家庭WiFi布网实战!#大男孩的快乐#征稿活动火热进行中。只要投稿就有50金币等你拿,更有三千元乐高大奖与达人Z计划专属权益等待优秀的你~>活动详情戳这里异地NAS->网盘->定期冷备。3、NAS的数据安全,就算硬盘损坏,数据还在:这个功能,不仅是NAS有,很多PC主机,硬盘柜子也都有,就是raid磁盘阵列功能。比如我现阿文菌|799评论273收藏5k查看详情一句话点评:

只要10年内的一台旧电脑,不管笔记本还是PC,都可以用本文的方式进行安装黑群晖NAS系统!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

绝对保姆级教程,跟着我的操作,一步一步来,保证可以完成安装!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

准备工作

灵魂拷问:将旧电脑或者新DIY的电脑,安装黑群晖NAS系统,您需要什么?黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

硬件方面:

1、必须要一个U盘:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

U盘容量大于2G即可,USB2.0 3.0都可以,安装黑群晖系统后,就不要拔下来,会一直插在电脑上。

我购买的是闪迪酷豆USB2.0 16GB的U盘,一个价格20元,很便宜,也很好用,不用担心U盘损坏会导致数据丢失,U盘只是开机的时候引导一些群晖系统,并不是真正的系统盘!

2、必须要且至少一块硬盘:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

群晖的系统,其实是安装在硬盘里面的,必须要一块或者多块硬盘,不需要固态硬盘,普通的大容量机械硬盘即可!硬盘我比较推荐站内亚马逊海淘的mybook、元素,8T、10T、12T、14T大容量硬盘!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

软件方面:

1、软件主要分为两类,一类是 群晖DS918+的引导文件和固件,这里我已经打包上传到云盘了,下面这2个:

链接:提取码:g67k

如果您的主机和群晖918+固件不太兼容,可以参考这个链接的3617固件。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、另外一类是安装工具,分别有DiskGenius分区工具、ChipGenius芯片无忧工具、Win32DiskImager写盘工具,我也打包上传到云盘了,下面这3个:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

链接:提取码:ofvy

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

您也可以通过其它渠道下载到这些安装工具,我这里只是方便大家将工具准备好!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

其它准备:

1、您需要一台适合做NAS的硬件,不管是J1900蜗牛星际矿渣,还是J3455,还是I3-8100等设备,只要满足了一台电脑PC的设备都可以,10年的老电脑也可以。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、您需要一台安装了windows系统的电脑一台,用来制作引导U盘。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

3、您需要一个键盘鼠标,显示器,用来监看是否安装好系统,等系统安装后,这些就没有用了。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

安装第一步、先制作引导U盘:

1、将准备好的U盘,插入到电脑上:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、我们打开DiskGenius分区助手工具,找到刚刚插入的U盘,右键删除所有分区:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

3、删除分区后,记得点下保存更改:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

4、然后点击这个U盘,点击快速分区按钮:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

5、设置MBR分区表、自定1个分区,然后点击确定:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

U盘已经格式化完成,请一定要关闭DiskGenius工具,记得关闭

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

6、打开ChipGenius芯片无忧工具,找到刚刚格式化了的U盘盘符,比如,我的U盘就是F盘,点击以后,记住下面的VID和PID里面的数值:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

我这里VID=0781,PID=5571,记住了以后,就可以关闭ChipGenius芯片无忧工具了:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

7、我们打开Win32DiskImager写盘工具,选择映像文件为DS918固件的引导文件:synoboot.img,盘符选择U盘的盘符,然后点击写入:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

8、这个步骤会再次格式化U盘的,点击Yes,等10秒钟左右即可写入完成:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

完成后,记得关闭Win32DiskImager软件!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

9、到目前为止,我们所有的工具都应该是关闭状态了,这时候再次打开DiskGenius分区助手工具:

点击U盘的这个盘符前面的小+号,找到grub这个盘符:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

10、在这个目录里面,有个grub.cfg文件,我们右键点击它,点击复制到桌面选项:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

如果您的这个复制到桌面选项是灰色的,请更换一个DiskGenius分区助手的版本!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

11、复制到桌面以后,右键这个文件,选择用记事本打开:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

12、找到其中set vid 这个地方,修改这个后面的数值,改成之前芯片无忧找到的数值,而sn和mac则是洗白需要的,我不建议洗白:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

13、下面是我设置好的,大家可以参考一下,如果您家里有多个黑群晖NAS,建议修改一下SN和MAC,避免冲突,我这里随便修改了一下,然后记得保存:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

14、保存修改了以后,将这个修改好的文件,拖入到DiskGenius分区同文件名的目录中,进行覆盖:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

15、提示需要替换文件,点击替换:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

16、完成后,检查一下,这个文件是不是最新的创建日期,如果一切都没有问题,就可以关掉软件,拔掉U盘了:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

到此,黑群晖NAS的引导U盘就安装完成了!恭喜,您马上就要成功了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

本次步骤耗时实际时间只需要1分钟即可!

这里的工具都通用的,如果您是打算安装别的版本的黑群晖,比如3617-6.1.7版本,也可以用同样的方式安装,只要在写盘的时候(第7步)选择对应版本的引导文件即可!

如果您用记事本打开文件,不是我这样子整齐排序,也不要紧,依旧修改对应的PID VID 保存覆盖即可。

安装第二步、NAS开机,安装群晖系统:

1、我们将U盘和硬盘都安装到NAS里面,然后接入电源,网线,显示器,键盘鼠标:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、开机后,不停的按delete或者F2,进入到主板的BIOS页面:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

请忽略我用了11年的脏键盘!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

3、修改一下bios中的开启启动项,选择到U盘的启动盘符:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

4、BIOS保存后,NAS会重启,然后会进入到这个页面,这就代表已经加载了黑群晖的NAS系统了:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这个时候,可以拔掉键盘、鼠标、显示器,以后,这台NAS只需要电源线和网线即可!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

5、回到我们自己的windows 电脑上,这台电脑要和NAS在一个局域网中:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

在群晖官网或者百度下载一个 Synology Assistant 群晖查找工具,当然,您也可以在路由器里面查找最新出现的ip地址!

在Synology Assistant打开后,出现了一个IP地址,这个就是黑群晖的NAS的地址:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

6、我们双击上面的列表,或者在浏览器输入ip地址,就可以跳入到群晖的网页安装页面:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

918+固件加载比较慢,大家耐心等待,进入这个页面后,点击设置按钮:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

7、然后点击手动安装按钮:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

8、这个步骤,一定不要点安装最新版DSM,选择浏览,找到我们之前下载好的DS918+固件:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

9、这个时候会提示删掉所有硬盘数据,点击确定:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

10、然后就是自动安装的过程了,大概5分钟左右即可安装完毕:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

11、安装完毕后,会自动重启NAS,这时候还是需要耐心等待它跳转:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

918+固件比较特殊,有N多定制版本,或多或少会有一些BUG,我这找到的已经是修复了很多BUG的版本了,不过这个版本对螃蟹卡的支持略微有点差,如果真的半小时都加载不出来,我就建议您换成3617-6.1.7版本的群晖安装!3617-6.1.7固件在本文下方有提供下载链接。

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

12、我等待了大概8分钟左右,页面自动跳转到这个样子了,输入一下服务器的名字和设置一个你熟悉的用户名和密码:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

13、这里选择有DSM更新通知,然后点下一步:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

特别注意!遇到更新,黑群晖千万别更新,只要一天能稳定用,就一天不要更新!如果不小心更新了,导致无法进系统,需要重新制作引导U盘,就是上面的步骤再来一趟。

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

14、遇到这个提示,需要注册或登录QC,我们是黑群,不要登录,点跳过:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

15、这个提示点是:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

16、然后我们的群晖NAS向导就结束了:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

17、这个就是群晖的界面了:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

啊,熟悉的群晖,我又来了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

18、特别提醒,黑群晖下,CPU的显示和您的主板CPU显示是不一样的,不要介意这个问题,毕竟我们用的是黑群:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖的NAS到此就完全安装完成了!除去了安装等待的时间,设置的时间其实只需要1分钟即可!

其实只需要2分钟,我们就可以完成黑群晖NAS的系统安装黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS! 学会了吗??学会了请记得为文章点赞哦!

安装第三步、群晖NAS设置硬盘:

1、我发现很多初安装了群晖的朋友们,连基础的硬盘设置都不会,所以这次加上这个步骤:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

点击左上角的 方块按钮,找到存储空间管理员,点击打开:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

说多了都是泪,真的很多朋友找过来,到这部分都得手把手教!T.T

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、我们点击存储空间,点击新增:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

3、选择自定义:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

4、选择性能改善:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

5、由于我只有一块硬盘,我选择独立的Basic:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

如果您有多个硬盘,而且需要保护自己的数据,可以选择组raid1,raid5等磁盘整列:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

6、关于RAID的解释,这些都是我之前手打的,够白话了吧,大家根据自己的需要选择:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

RAID0模式:

这个模式是将2个或者4个,倍数的硬盘合二一,如果用的是SSD硬盘,RAID0还可以增加读写速度:

空间大小:2+2+2+2 = 8T

这个模式可以让硬盘的速度最快,空间利用率也很高,但是只要一个硬盘损坏,所有硬盘的数据玩完,特别不推荐,属于玩火的人才会用这个模式。

RAID1模式:

这个模式是将2个或者4个,倍数的硬盘除以二,能保证数据拷贝的时候,有一个硬盘进行备份:

空间大小:2+2+2+2 = 4T

这个模式最安全,只要坏了硬盘,再换上一个即可,另外一个硬盘会进行备份,所以很多人用,但是空间利用率有点少,比如你买了2个8T硬盘组RAID1,那么只能用1个8T,就有点浪费了。

RAID5模式:

这个模式最少得3块以上的硬盘,属于RAID1 和 RAID0 之间,比如有4块硬盘组RIAD5,那么只会用一块硬盘进行保护,其它的空间可以叠加:

空间大小:2+2+2+ 2 = 6T

这个模式,可以最大的利用磁盘空间,也能保护磁盘,而且如果用SSD的话,硬盘速度也有叠加,不过缺点就是硬盘在损坏以后,换上新的硬盘后,重建数据的时间非常长,而重建过程中,如果再损坏一块硬盘,就全部玩完。

RAID6和RAID10模式:

RAID6,就是RAID5模式的加强版,用2个硬盘做冗余;而RAID10,则是RAID0和RAID1的结合,需要4个硬盘才行,先将2个硬盘进行RAID0,再将2个RAID0进行RAID1,可以保住数据安全的同时,提供硬盘速度。

后面2个,几乎很少用到,而如果买了NAS,不用RAID的也比较少,我这里推荐,2个盘位RAID1,3个盘位以上RAID5,重要数据,多做冷备。

7、我们继续,选择一个硬盘后,点下一步:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

8、这个硬盘需要被格式化,点确定:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

如果您的硬盘之前是在windows里面,数据还需要的话,请在安装群晖之前把数据备份好。

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

9、然后点击下一步,群晖会自动检查这块硬盘,让硬盘的速度最效率,这个检查过程,有可能持续一整天:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

10、默认会创建存储池,我们直接点击下一步:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

11、默认Btrfs设置即可:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

12、创建完成后,存储空间是这样的:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

13、存储池是这样的,如果您没创建存储池,是没法共享文件夹的,需要在下面这个页面新增一个存储池:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

14、完成以后,我们打开控制面板,找到共享文件夹,点击新增:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

15、增加一个共享文件夹,我主要是看电影用,就设置一个Movie文件夹,如果您是存重要资料,建议这里打勾启动回收站选项黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

16、记住这个NAS的ip地址:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

17、我们打开电脑,在地址栏输入 NAS的ip地址,比如 10.10.10.54 :黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

18、会弹出需要登录的账号密码,输入我们的NAS账号密码:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

19、然后就登录了NAS的服务器地址了,这个就是和共享文件夹一样的,我们右键这个文件夹,点映射网络驱动器:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

20,设置一个盘符,点完成:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

21、完成以后,我们就可以在 我的电脑 里面看到NAS的盘符了,直接可以用来读取写入一些自己的文件,文件就保存到NAS上了,很安全:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

22、测试了一下拷贝速度,妥妥的 千兆带宽跑满了,能有112MB/s,很快的速度:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

23、在套件中心,可以安装丰富的NAS应用,有相册,音乐,电影等等,功能非常多:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

24、我这台NAS,是专门下载电影和观看电影使用的,下了这些应用:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

25、其中Docker容器里面还跑了很多应用,关于Docker的玩法本文后面有发链接:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

26、我这台NAS放了2个10T硬盘,几乎存满了电影,在家里的电脑,电视,手机,平板都可以访问这个NAS,读取电影播放,很过瘾:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

27、我的小站上的这些应用,都是搭建在NAS上面:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

我的NAS有好几台,每台各司其职,有的是备份相册,有的是网页,应用,有的是存储,有的是媒体服务器:

家里人已经全面熟悉了我的NAS使用,这在生活体验上有了明显的便捷!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

上面这个页面中的搭建方法几乎都写过文章,大家搜一下即可找到,文章结尾也放出了链接!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这个步骤就是简单的设置一下硬盘,熟悉一下群晖NAS系统!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

整体操作时间也不超过1分钟,所以整体3分钟即可完成一个黑群晖NAS的安装了!

这里顺便说一下黑群NAS和白群晖的区别:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

1、黑群晖NAS千万不要自动升级系统,有可能就无法开机了。

2、CPU处理器,黑群晖的显示不同。

3、黑群晖NAS在没有洗白的情况下,无法体验白群晖的QC外网服务,也强烈不建议洗白,QC服务是群晖公司的重要资源,我们已经白嫖了系统,就不要白嫖人家的服务器了。

4、黑群晖没有自动开机和远程唤醒功能。

差不多就想到这些不同之处!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS! 对了,还有,如果要用到相册略缩图功能,是需要半洗白!

而其他体验几乎都相同,黑群晖也可以和白群晖一样,体验各种应用,各种工具,包括手机APP都是通用的。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖的硬盘数据,也可以直接换到白群晖NAS中,直接可以无缝迁移到白群。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖也可以接入UPS等断电保护设备,可以说,只要不瞎搞,一台黑群晖NAS,可以用一辈子了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这里也感谢群晖公司对黑群系统的纵容,希望大家稳定后,由黑转白!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

开启显卡加速功能

1、在开始显卡加速功能之前,先说下,为啥要这个功能,如果您是萌新小白,下面的内容可以忽略,直接这么用就好了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

转码功能,是可以调用cpu里的集成显卡驱动,来加速视频播放转码的,主要目的是流畅播放视频。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

继续灵魂拷问:为什么需要转码?转码是什么!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这个功能主要给需要这台NAS承担影音媒体服务器使用!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS! 一般本地解码,就是用各种盒子的话,是不需要这个功能的!

比如我的这个电影库!就是搭建在NAS中!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS! 相当于自己做了一个内部使用的爱奇艺服务端。

不管是我是在外网还是内网,不管是电视、手机还是电脑,登录这个电影库后,就可以进行播放影片!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

而且是可以同步播放记录的,没有广告烦恼,而且画质高清!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

2、但是,有些电影的格式,并不适合网页进行播放,就会导致卡住,还有,在外网播放的时候,电影会占用更多的上传带宽!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这样外网播放也会卡顿,怎么解决这种问题呢?黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

如要流畅的播放转码这些影片,就需要较好的处理器和较好的集成显卡!只要显卡驱动调用成功,不仅可以大大的降低CPU的占有率,还可以加速播放电影,让播放进度更流畅!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

通常来说,H264格式的影片,占用资源最少,而HEVC H265等格式影片,会大大的增加NAS的负担。

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

3、关于转码的文章,我也写过太多太多了,转码这个东西,要么没有,要么就再也回不去!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

我现在已经把家里的电影库,分享给亲戚,亲戚在他们家里观看我家里几百部影片,真的很爽!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

曾经我因为转码问题,还换到过别的系统使用,在没有开启转码功能之前,仅播放一部电影,cpu的占用率就达到了90%以上:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

现在就算一些E3处理器的NAS,在没有集成显卡驱动加速的情况下,也会让CPU爆炸:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

4、而开启了显卡加速后,就算多人同时播放,CPU占用也不会很高,只要CPU占用不高,那么这台NAS在进行存储操作,也会更爽,速度更快:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

非常遗憾的是,曾经的J3455处理器对 群晖918+固件有很大的兼容问题,而G5400 I3-8100 这种处理器,就可以很好的在群晖NAS中,调用集成显卡:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

下图是J3455处理器在UNRAID系统中,调用集成显卡加速,播放的效果:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

多人同时观看家里的影音,CPU占用依旧不会很高:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

5、好了!转码的问题说了很多了,如果您不需要转码功能,那么安装918+固件的意义也不大,3617还更稳定一些。

现在我们来检查一下,您这台群晖NAS能不能使用显卡加速功能,我们点击控制面板,打勾右侧的SSH功能:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

6、然后我们下载PuTTY工具,打开后,输入群晖NAS的IP地址,点击OPEN打开:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

PuTTY 工具请百度自行下载,1-2MBPuTTY 工具请百度自行下载,1-2MB

7、提示这个,点击 是:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

8、默认进入到一个类似dos的页面,输入群晖用户名 回车,然后再输入密码 回车。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

注意,这里密码是不可见的,这样就连上了群晖NAS了:

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

9、然后我们输入代码 : ls /dev/dri, 这个代码输入以后,如果出现了 renderD128这个黄色的东西,就说明您的这台NAS显卡驱动是正常的!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

10、接下来就可以安装 Emby、Plex、Jellyfin来进行显卡加速功能了!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

我这里推荐Emby和Plex直接在套件中心进行安装,直接可以开启显卡加速功能。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

而jellyfin则需要在Docker里面安装!

如果用Docker安装Jellyfin并且开启硬件转码功能的保姆级教程文章,我已经在这篇文章有分享,大家点击观看即可:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

打造低功耗家庭影音NAS:i3-8100更换 华擎J5005ITX 群晖下Jellyfin硬解!#大男孩的快乐#征稿活动火热进行中。只要投稿就有50金币等你拿,更有三千元乐高大奖与达人Z计划专属权益等待优秀的你~>活动详情戳这里阿文菌|522评论773收藏3k查看详情到此,这台NAS的安装就完全结束了!是不是非常爽呢!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

这里再说一下,如果您的NAS系统,安装完成后,没有显卡驱动,那么我建议您更换到3617固件。

这里说下原因,很多老电脑的显卡是很差的,没有显卡驱动也很正常,而网卡有时候对918+固件的兼容性也成问题。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

更换3617 会更稳定,我用了近1年的3617版本的黑群晖NAS系统,没有任何毛病,开机速度贼快,功能也丰富,而918+固件,总会莫名其妙出现一些小BUG,有时候开机也比较慢。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

还好,在i3-8100这块处理器上,918+的固件还是很稳的很稳的。黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

另外,要注意的地方,918+固件只支持两张网口,您如果是多个网口,就要麻烦一些,其它918+固件如果稳定,就继续用吧!黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

如何获取天下最稳定的3617-6.1.7的固件,看我这篇文章的链接进行下载:黑群晖NAS保姆级教程:手把手教您安装DS918+固件,开启显卡解码功能!3分钟玩转黑群NAS!

Linux系统设置开机自动运行脚本

文章标签: linux
版权
方法一:修改 /etc/rc.d/rc.local 文件

/etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行。所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。

但是,首先需要确认你有运行这个文件的权限。

$ chmod +x /etc/rc.d/rc.local
1
为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。

$ vim auto_run_script.sh

#!/bin/bash
date >> /home/alvin/output.txt
hostname >> /home/alvin/output.txt
1
2
3
4
5
保存退出后,再给它赋予可执行权限:

$ chmod +x auto_run_script.sh
1
然后,我们再将脚本添加到 /etc/rc.d/rc.local 文件最后一行:

$ vim /etc/rc.d/rc.local

/home/alvin/auto_run_script.sh
1
2
3
方法二:使用 crontab

大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。

我们可以自己设置计划任务时间,然后编写对应的脚本。但是,有个特殊的任务,叫作 @reboot ,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。

那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过 crontab -e 来设置。

$ crontab -e

@reboot /home/alvin/auto_run_script.sh
1
2
3
然后,直接重启即可。运行的效果跟上面类似。

方法三:使用 systemd 服务

以上介绍的两种方法,在任何 Linux 系统上都可以使用。但本方法仅适用于 systemd 系统。如何区分是不是 systemd 系统?很简单,只需运行 ps aux 命令,查看 pid 为 1 的进程是不是 systemd 。

为了实现目的,我们需要创建一个 systemd 启动服务,并把它放置在 /etc/systemd/system/ 目录下。

我们创建的 systemd 启动服务如下。请注意,这时后缀是 .service ,而不是 .sh 。

$ vim auto_run_script.service

[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/home/alvin/auto_run_script.sh

[Install]
WantedBy=default.target
1
2
3
4
5
6
7
8
9
10
11
从服务的内容可以看出来,我们最终还是会调用 /home/alvin/auto_run_script.sh 这个脚本。

然后,我们再把这个脚本放置在 /etc/systemd/systerm/ 目录下,之后我们再运行下面两条命令来更新 systemd 配置文件,并启动服务。

$ systemctl daemon-reload
$ systemctl enable auto_run_script.service
1
2
万事俱备之后,我们就可以重启系统啦。
————————————————
版权声明:本文为CSDN博主「aleihello」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/aleihello/article/details/110759954

开机时自动运行shell_群晖开机自动运行frpc脚本

开机时自动运行shell_群晖开机自动运行frpc脚本

Sahadhammika 2021-01-13 12:52:09 1275 收藏
文章标签: 开机时自动运行shell
版权

打开浏览器用管理员账号登录群晖DSM管理后台(例:192.168.x.xxx:5000),点击控制面板搜索ssh,按下图方法开启ssh。

 

 

SSH登录群晖admin账户后执行sudo -i再次输入密码可以提权到root账户。

1、FRP目录及文件位置说明

frpc目录在群晖的/root/frp/中,目录主要包含frpc和frpc.ini两个文件

2、复制下面的代码

nohup /root/frp/frpc -c /root/frp/frpc.ini &

创建frpc.sh脚本文件,将刚才复制的代码粘贴进去

vi /usr/syno/etc.defaults/rc.sysv/frpc.sh

设置脚本文件权限

chmod +x /usr/syno/etc.defaults/rc.sysv/frpc.sh

将脚本文件写入启动文件中

vi /etc/rc

在文件的倒数第二行(exit 0前面)添加下面的脚本文件路径,可使用 :$ 跳转到最后一行

/usr/syno/etc.defaults/rc.sysv/frpc.sh

重启群晖系统 reboot

3、总结

创建启动脚本文件的目录可随意,本文存放在/usr/syno/etc.defaults/rc.sysv目录中,用户可根据自己的实际情况自行选择目录。为了确保在reboot后能顺利启动frpc,请在reboot之前测试运行frpc,避免不必要的重启次数。请注意本文使用的群晖DSM版本为DSM 6.2.1-23824 Update 4,若因群晖系统不同而导致群晖系统损坏本站概不负责,在动手修改系统配置文件之前要谨记备份要修改的配置文件。

一、Frp目录及文件说明
frpc目录在群晖的 /root/frpc/ 中,目录主要包含 frpc 和 frpc.ini 两个文件

[common]
server_addr = 公网域名或IP
server_port = 7777
auth_token = 密钥
pool_count = 1
admin_addr = 内网IP
admin_port = 7400

[ssh]
type = tcp
local_ip = 内网IP
local_port = 22
remote_port = 6666

[nas]
type = http
local_port = 5000
custom_domains = 公网域名或IP

[range:tcp_port]
type = tcp
local_ip = 内网IP
local_port = 80,443,1900,5001-5006,5353,6001-6010,6690,9900,9901,9025-9040,50001
remote_port = 80,443,1900,5001-5006,5353,6001-6010,6690,9900,9901,9025-9040,50001

[range:udp_port]
type = udp
local_ip = 内网IP
local_port = 1900,5000,5001,5353,6001-6006,50001,50002
remote_port = 1900,5000,5001,5353,6001-6006,50001,50002
二、创建启动脚本文
1、创建脚本文件
vi /usr/syno/etc.defaults/rc.sysv/frpc.sh
2、编辑脚本文件
cd /root/frpc
nohup ./frpc -c ./frpc.ini &
3、设置脚本文件权限
cd /usr/syno/etc.defaults/rc.sysv/
chmod +x frpc.sh
4、将脚本文件写入启动文件中
vi /etc/rc
在文件的倒数第二行(exit 0前面)添加脚本文件,可使用 :$ 跳转到最后一行

/usr/syno/etc.defaults/rc.sysv/frpc.sh
5、查看后台frpc是否正在运行
ps -aux|grep frpc|grep -v grep
若有消息输入则正常运行,若没有输出这已经退出。

三、总结
创建启动脚本文件的目录可随意,本文存放在 /usr/syno/etc.defaults/rc.sysv 目录中,用户可根据自己的实际情况自行选择目录。

配置完成后可重启群晖系统一次,判断脚本文件是否启动成功。

重启系统命令: reboot
————————————————
版权声明:本文为CSDN博主「小歆Pro」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zhangzejin3883/article/details/108975822

Linux xargs 命令与深入分析

Linux 命令大全 Linux 命令大全

1.1 为什么需要xargs

管道实现的是将前面的stdout作为后面的stdin,但是有些命令不接受管道的传递方式,最常见的就是ls命令。有些时候命令希望管道传递的是参数,但是直接用管道有时无法传递到命令的参数位,这时候需要xargs,xargs实现的是将管道传输过来的stdin进行处理然后传递到命令的参数位上。也就是说xargs完成了两个行为:处理管道传输过来的stdin;将处理后的传递到正确的位置上。

可以试试运行下面的几条命令,应该能很好理解xargs的作用了:

[root@xuexi tmp]# echo “/etc/inittab” | cat   # 直接将标准输入的内容传递给cat
[root@xuexi tmp]# echo “/etc/inittab” | xargs cat   # 将标准输入的内容经过xargs处理后传递给cat[root@xuexi tmp]# find /etc -maxdepth 1 -name “*.conf” -print0 | xargs -0 -i grep “hostname” -l {} # 将搜索的文件传递给grep的参数位进行搜索,若不使用xargs,则grep将报错

xargs的作用不仅仅限于简单的stdin传递到命令的参数位,它还可以将stdin或者文件stdin分割成批,每个批中有很多分割片段,然后将这些片段按批交给xargs后面的命令进行处理。

通俗的讲就是原来只能一个一个传递,分批可以实现10个10个传递,每传递一次,xargs后面的命令处理这10个中的每一个,处理完了处理下一个传递过来的批,如下图。

但是应该注意的是,尽管实现了分批处理,但是默认情况下并没有提高任何效率,因为分批传递之后还是一次执行一个。而且有时候分批传递后是作为一个参数的整体,并不会将分批中的信息分段执行。这样看来,实现分批传递的目的仅仅是为了解决一些问题。但事实上,xargs提供了“-P”选项,用于指定并行执行的数量(默认只有一个处理进程,不会提升效率,可以指定为N个子进程,或者指定为0表示尽可能多地利用CPU),这样就能让分批操作更好地利用多核cpu,从而提升效率。例如上面分成了两批,指定”-P 2″可以并发执行这两个批,而非执行完第一批再执行第二批。关于并行处理的详细内容,见后文:高速并行处理之:xargs -P

剩下的就是处理xargs的细节问题了,比如如何分割(xargs、xargs -d、xargs -0),分割后如何划批(xargs -n、xargs -L),参数如何传递(xargs -i)。另外xargs还提供询问交互式处理(-p选项)和预先打印一遍命令的执行情况(-t选项),传递终止符(-E选项)等。

其实这里已经暗示了xargs处理的优先级或顺序了:先分割,再分批,然后传递到参数位。

分割有三种方法:独立的xargs、xargs -d和xargs -0。后两者可以配合起来使用,之所以不能配合独立的xargs使用,答案是显然的,指定了-d或-0选项意味着它不再是独立的。

分批方法从逻辑上说是两种:-n选项和-L选项。但我觉得还应该包含传递阶段的选项-i。假如-i不是分批选项,则它将接收分批的结果。然而事实并非如此,当-i选项指定在-n和-L选项之后,会覆盖-n或-L。后文中我将其当成分批选项来介绍和说明。

当然上述只是一个概括,更具体的还要看具体的选项介绍,而且很可能一个xargs中用不到这么多选项,但是理解这个很重要,否则在分割分批和传递上很容易出现疑惑。

1.2 文本意义上的符号和标记意义上的符号

在解释xargs和它的各种选项之前,我想先介绍一个贯穿xargs命令的符号分类:文本意义上的空格、制表符、反斜线、引号和非文本意义上的符号。我觉得理解它们是理解xargs分割和分批原理的关键。

文本意义上的空格、制表符、反斜线、引号:未经处理就已经存在的符号,例如文本的内容中出现这些符号以及在文件名上出现了这些符号都是文本意义上的。与之相对的是非文本意义的符号,由于在网上没找到类似的文章和解释,所以我个人称之为标记意义上的符号:处理后出现的符号,例如ls命令的结果中每个文件之间的制表符,它原本是不存在的,只是ls命令处理后的显示方式。还包括每个命令结果的最后的换行符,文件内容的最后一行结尾的换行符

如下图,属于标记意义上的符号都用红色圆圈标记出来了。

其实它们的关系有点类似于字面意义的符号和特殊符号之间的关系,就像有时候特殊符号需要进行转义才能表示为普通符号。

因为翻了百度、谷歌和一些书都没说这些方面的分类。但文本和非文本的符号在xargs分割的时候确实是区别对待的,所以我觉得有必要给个称呼好引用并说明它们,也就是说以上称呼完全是我个人的称呼。

1.3 分割行为之:xargs

[root@xuexi tmp]# cd /tmp
[root@xuexi tmp]# rm -fr *
[root@xuexi tmp]# mkdir a b c d test logdir shdir
[root@xuexi tmp]# touch “one space.log”
[root@xuexi tmp]# touch logdir/{1..10}.log
[root@xuexi tmp]# touch shdir/{1..5}.sh
[root@xuexi tmp]# echo “the second sh the second line” > shdir/2.sh
[root@xuexi tmp]# cat <<eof>shdir/1.sh
> the first sh
> the second line
> eof

对于xargs,它将接收到的stdout处理后传递到xargs后面的命令参数位,不写命令时默认的命令是echo。

[root@xuexi tmp]# cat shdir/1.sh | xargsthe first sh the second line
[root@xuexi tmp]# cat shdir/1.sh | xargs echothe first sh the second line

将分行处理掉不是echo实现的,而是管道传递过来的stdin经过xargs处理后的:将所有空格、制表符和分行符都替换为空格并压缩到一行上显示,这一整行将作为一个整体,这个整体的所有空格属性继承xargs处理前的符号属性,即原来是文本意义的或标记意义的在替换为空格后符号属性不变。这个整体可能直接交给命令或者作为stdout通过管道传递给管道右边的命令,这时结果将作为整体传递,也可能被xargs同时指定的分批选项分批处理。

如果想要保存制表符、空格等特殊符号,需要将它们用单引号或双引号包围起来,但是单双引号(和反斜线)都会被xargs去掉。

另外经过我的测试,单引号和双引号的存在让处理变的很不受控制,经常会影响正常的分割和处理。

如果不指定分批选项,xargs的一整行结果将作为一个整体输出,而不是分隔开的。也许看处理的结果感觉是分开处理的,例如下面的第一个命令,但是这是因为ls允许接受多个空格分开的参数,执行第二个命令,可以证明它确实是将整行作为整体传输给命令的。

[root@xuexi tmp]# find /tmp -maxdepth 1 | xargs ls

/tmp/sh.txt

/tmp:

a b c d logdir shdir sh.txt test

/tmp/a:

/tmp/b:

/tmp/c:

/tmp/d:

/tmp/.ICE-unix:

/tmp/logdir:

10.log 1.log 2.log 3.log 4.log 5.log 6.log 7.log 8.log 9.log

/tmp/shdir:

1.sh 2.sh 3.sh 4.sh 5.sh hell sh.txt

/tmp/test:

[root@xuexi tmp]# find /tmp -maxdepth 1 | xargs -p ls   # -p选项后面有解释

ls /tmp /tmp/x.txt /tmp/logdir /tmp/b /tmp/test /tmp/d /tmp/vmware-root /tmp/sh.txt /tmp/c /tmp/shdir /tmp/a /tmp/one space.log /tmp/.ICE-unix ?…

如果对独立的xargs指定分批选项,则有两种分批可能:指定-n时按空格分段,然后划批,不管是文本意义的空格还是标记意义的空格,只要是空格都是-n的操作对象;指定-L或者-i时按段划批,文本意义的符号不被处理。

[root@xuexi tmp]# ls   #one space.log是一个文件的文件名,只是包含了空格

a b c d logdir one space.log shdir sh.txt test vmware-root x.txt

[root@xuexi tmp]# ls | xargs -n 2

a b

c d

logdir one # one和space.log分割开了,说明-n是按空格分割的

space.log shdir

sh.txt test

vmware-root x.txt

[root@xuexi tmp]# ls | xargs -L 2

a b

c d

logdir one space.log # one space.log作为一个分段,文件名中的空格没有分割这个段

shdir sh.txt

test vmware-root

x.txt

[root@xuexi tmp]# ls | xargs -i -p echo {}

echo a ?…

echo b ?…

echo c ?…

echo d ?…

echo logdir ?…

echo one space.log ?… # one space.log也没有被文件名中的空格分割

echo shdir ?…

echo sh.txt ?…

echo test ?…

echo vmware-root ?…

echo x.txt ?…

1.4 使用xargs -pxargs -t观察命令的执行过程

使用-p选项是交互询问式的,只有每次询问的时候输入y(或yes)才会执行,直接按enter键是不会执行的。

使用-t选项是在每次执行xargs后面的命令都会先在stderr上打印一遍命令的执行过程然后才正式执行。

使用-p或-t选项就可以根据xargs后命令的执行顺序进行推测,xargs是如何分段、分批以及如何传递的,这通过它们有助于理解xargs的各种选项。

[root@xuexi tmp]# ls | xargs -n 2 -t

/bin/echo a b # 先打印一次命令,表示这一次只echo两个参数:a和b

a b

/bin/echo c d # 表示这次只打印c和d

c d

/bin/echo logdir one

logdir one

/bin/echo space.log shdir

space.log shdir

/bin/echo sh.txt test

sh.txt test

/bin/echo vmware-root

vmware-root

[root@xuexi tmp]# ls | xargs -n 2 -p

/bin/echo a b ?…y # 询问是否echo a b

/bin/echo c d ?…a b

y # 询问是否echo c d,后面的…a b指示了echo c d是在前一个结果的基础上接着执行的

/bin/echo logdir one ?…c d

y

/bin/echo space.log shdir ?…logdir one

y

/bin/echo sh.txt test ?…space.log shdir

y

/bin/echo vmware-root ?…sh.txt test

y

vmware-root

从上面的-t和-p的结果上都可以知道每次传递两个参数。

1.5 分割行为之:xargs -d

xargs -d有如下行为:

? xargs -d可以指定分段符,可以是单个符号、字母或数字。如指定字母o为分隔符:xargs -d”o”

? xargs -d是分割阶段的选项,所以它优先于分批选项(-n-L-i)。

? xargs -d不是先xargs-d处理的,它是区别于独立的xargs的另一个分割选项。

xargs -d整体执行有几个阶段:

? 替换:将接收stdin的所有的标记意义的符号替换为\n,替换完成后所有的符号(空格、制表符、分行符)变成字面意义上的普通符号,即文本意义的符号。

? 分段:根据-d指定的分隔符进行分段并用空格分开每段,由于分段前所有符号都是普通字面意义上的符号,所以有的分段中可能包含了空格、制表符、分行符。也就是说除了-d导致的分段空格,其余所有的符号都是分段中的一部分。

? 输出:最后根据指定的分批选项来输出。这里需要注意,分段前后有特殊符号时会完全按照符号输出。

从上面的阶段得出以下两结论:

(1)xargs -d会忽略文本意义上的符号。对于文本意义上的空格、制表符、分行符,除非是-d指定的符号,否则它们从来不会被处理,它们一直都是每个分段里的一部分;

(2)由于第一阶段标记意义的符号会替换为分行符号,所以传入的stdin的每个标记意义符号位都在最终的xargs -d结果上分行了,但是它们已经是分段中的普通符号了,除非它们是-d指定的符号。

例如对ls的结果指定”o”为分隔符。

[root@xuexi tmp]# ls

a b c d logdir one space.log shdir sh.txt test vmware-root

[root@xuexi tmp]# ls | xargs -d”o”  #指定字母”o”为分隔符

分段结果如图所示,图中每个封闭体都是一个分段,这些分段里可能包含了分行,可能包含了空格。

如果使用xargs -d时不指定分批选项,则整个结果将作为整体输出。

[root@xuexi tmp]# ls | xargs -d”o” -p

/bin/echo a

b

c

d

l gdir

ne space.l g

shdir

sh.txt

test

vmware-r t

x.txt

?…

如果指定了分批选项,则按照-d指定的分隔符分段后的段分批,这时使用-n、-L或-i的结果是一样的。例如使用-n选项来观察是如何分批的。

[root@xuexi tmp]# ls | xargs -d”o” -n 2 -t

/bin/echo a

b

c

d

l gdir # 每两段是一个批。

a

b

c

d

l gdir

# 注意这里有个空行。是因为段的分隔符处于下一段的行开头,它的前面有个\n符号会按符号输出。

/bin/echo ne space.l g

shdir

sh.txt

test

vmware-r # 打印中间两段

ne space.l g

shdir

sh.txt

test

vmware-r

/bin/echo t # 打印最后一段,

t # 注意t前面有空格,因为是两个分隔符o连在一起分割的,所以前面有个空格需要输出。

下面是最终显示结果。

[root@xuexi tmp]# ls | xargs -d”o” -n 2

a

b

c

d

l gdir

ne space.l g

shdir

sh.txt

test

vmware-r

t

再看看-n 1的输出。

[root@xuexi tmp]# ls | xargs -d”o” -n 1

a

b

c

d

l

gdir

ne space.l

g

shdir

sh.txt

test

vmware-r

t

[root@xuexi tmp]#

1.6 分割行为之:xargs -0

xargs -0的行为和xargs -d基本是一样的,只是-d是指定分隔符,-0是指定固定的\0作为分隔符。其实xargs -0就是特殊的xargs -d的一种,它等价于xargs -d”\0″。

xargs -0行为如下:

? xargs -0是分割阶段的选项,所以它优先于分批选项(-n-L-i)。

? xargs -0不是先xargs-0处理的,它是区别于独立的xargs的另一个分割选项。

? xargs -0可以处理接收的stdin中的null字符(\0)。如果不使用 -0选项或– -null选项,检测到\0后会给出警告提醒,并只向命令传递非\0段。xargs -0– -null是一样的效果。

xargs -0整体执行有几个阶段:

? 替换:将接收stdin的所有的标记意义的符号替换为\n,替换完成后所有的符号(空格、制表符、分行符)变成字面意义上的普通符号,即文本意义的符号。

? 分段:将检测到的null字符(\0)使用标记意义上的空格来分段,由于分段前所有符号都是普通字面意义上的符号,所以有的分段中可能包含了空格、制表符、分行符。也就是说除了-0导致的分段空格,其余所有的符号都是分段中的一部分。

如果没有检测到\0,则接收的整个stdin将成为一个不可分割的整体,任何分批选项都不会将其分割开,因为它只有一个段。

? 输出:最后根据指定的分批选项来输出。这里需要注意,分段前后有特殊符号时会完全按照符号输出。

根据上面的结论可知,xargs -0会忽略所有文本意义上的符号,它的主要目的是处理\0符号。

[root@xuexi tmp]# touch “one space.log”

[root@xuexi tmp]# ls | tr ” ” “\t” | xargs -0  #忽略文本意义上的制表符

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

# 注意有空行,因为命令结尾是一个标记意义上换行符号

[root@xuexi tmp]# ls | tr ” ” ” ” | xargs -0   #忽略文本意义上的空格

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

# 注意有空行

如果检测到\0而没有使用-0或–null处理则给出警告。注意警告后执行哪些文件。

[root@xuexi tmp]# ls | tr ” ” “\0″

a

b

c

d

logdir

onespace.log # 这里实际上是one\0space.log

shdir

sh.txt

test

vmware-root

[root@xuexi tmp]# ls | tr ” ” “\0” | xargs

xargs: Warning: a NUL character occurred in the input. It cannot be passed through in the argument list. Did you mean to use the –null option?

a b c d logdir one shdir sh.txt test vmware-root # 执行时将space.log忽略了,其余都执行

再例如,将所有的换行符换成null字符,结果中除了最前面的字母a和由于空格而不被\0影响的space.log,其余的由于全部有\0全部被忽略。

[root@xuexi tmp]#  ls | tr “\n” “\0”

a bcdlogdirone space.logshdirsh.txttestvmware-root # 只有a的前面和space.log的前面是没有\0的

[root@xuexi tmp]#  ls | tr “\n” “\0” | xargs

xargs: Warning: a NUL character occurred in the input. It cannot be passed through in the argument list. Did you mean to use the –null option?

a space.log # 所以只执行这两个

使用-0或–null来解决问题,也可以使用等价的xargs -d”\0″来解决。

[root@xuexi tmp]# ls | tr “\n” “\0” | xargs -0

或者

[root@xuexi tmp]# ls | tr “\n” “\0″ | xargs -d”\0”

a b c d logdir one space.log shdir sh.txt test vmware-root

如果使用xargs -0时不指定分批选项(-n、-L、-i),则处理后的结果将作为一个整体输出。

如果指定了分批选项,并且检测到了null字符,则以\0位的空格分段划批,这时使用-n、-L或-i的结果是一样的。例如使用-n选项来观察是如何分批的。

[root@xuexi tmp]# ls | tr “\n” “\0” | xargs -0 -n 3

a b c

d logdir one space.log

shdir sh.txt test

vmware-root x.txt

如果指定了分批选项,但没有检测到null字符,则整个结果将称为一个不可分割整体,这时使用分批选项是完全无意义的。

[root@xuexi tmp]# ls | xargs -0 -n 3 -p

/bin/echo a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

x.txt

?…

1.7 分批行为

分批用于指定每次传递多少个分段。有三种分批选项:-n,-L和-i。在本文的开头已经指明了为什么-i是分批选项,但是这里还是要介绍它逻辑上定义的功能:参数替换。

既然三种选项都是分批选项,如果在一个xargs中使用了多个分批选项,则它们之间必然会冲突,它们的规则是写在后面的生效,前面的分批选项被忽略

1.7.1 xargs -n

xargs -n分两种情况:和独立的xargs一起使用,这时按照每个空格分段划批;和xargs -d或xargs -0一起使用,这时按段分批,即不以空格、制表符和分行符分段划批。

[root@xuexi tmp]# ls | xargs -n 3 -p   #和独立的xargs一起使用,以空格分段划批

/bin/echo a b c ?…

/bin/echo d logdir one ?… # one和space.log被割开了

/bin/echo space.log shdir sh.txt ?…

/bin/echo test vmware-root x.txt ?…

/bin/echo ?…

[root@xuexi tmp]# ls | xargs -d”o” -n 3 -p  # 和xargs -d一起使用,按段分批

/bin/echo a

b

c

d

l gdir

ne space.l ?…

/bin/echo g

shdir

sh.txt

test

vmware-r t

x.txt

?…

/bin/echo ?…

1.7.2 xargs -L

和-n选项类似,唯一的区别是-L永远是按段划批,而-n在和独立的xargs一起使用时是按空格分段划批的。

该选项的一个同义词是-l,但是man推荐使用-L替代-l,因为-L符合POSIX标准,而-l不符合。使用–max-lines也可以。

也许你man xargs时发现-L选项是指定传递时最大传递行数量的,man的结果如下图。但是通过下面的实验可以验证其实-L是指定传递的最大段数,也就是分批。

[root@xuexi tmp]# ls | xargs -L 3 -p   #如果是指定传递的最大行数量,则一行就输出完了,这里却分了多行输出

/bin/echo a b c ?…

/bin/echo d logdir one space.log ?… # 这里可以证明-L和-n的区别

/bin/echo shdir sh.txt test ?…

/bin/echo vmware-root x.txt ?…

[root@xuexi tmp]# ls | xargs -d”o” -L 3 -p  # 这就更能证明是指定最大传递的段数量了

/bin/echo a

b

c

d

l gdir

ne space.l ?…

/bin/echo g

shdir

sh.txt

test

vmware-r t

x.txt

?…

1.7.3 xargs -ixargs -I

xargs -i选项在逻辑上用于接收传递的分批结果。

如果不使用-i,则默认是将分割后处理后的结果整体传递到命令的最尾部。但是有时候需要传递到多个位置,不使用-i就不知道传递到哪个位置了,例如重命名备份的时候在每个传递过来的文件名加上后缀.bak,这需要两个参数位。

使用xargs -i时以大括号{}作为替换符号,传递的时候看到{}就将被结果替换。可以将{}放在任意需要传递的参数位上,如果多个地方使用{}就实现了多个传递。

xargs -I(大写字母i)和xargs -i是一样的,只是-i默认使用大括号作为替换符号,-I则可以指定其他的符号、字母、数字作为替换符号,但是必须用引号包起来。man推荐使用-I代替-i,但是一般都使用-i图个简单,除非在命令中不能使用大括号,如touch {1..1000}.log时大括号就不能用来做替换符号。

例如下面的重命名备份过程。

[root@xuexi tmp]# ls logdir/

10.log 1.log 2.log 3.log 4.log 5.log 6.log 7.log 8.log 9.log

[root@xuexi tmp]# ls logdir/ | xargs -i mv ./logdir/{} ./logdir/{}.bak   # 将分段传递到多个参数位

[root@xuexi tmp]# ls logdir/

10.log.bak 1.log.bak 2.log.bak 3.log.bak 4.log.bak 5.log.bak 6.log.bak 7.log.bak 8.log.bak 9.log.bak

但是我将“-i”选项划分在分批选项里,它默认一个段为一个批,每次传递一个批也就是传递一个段到指定的大括号{}位上。在稍后的分批选项的生效规则部分我会给出我的理由。

由于-i选项是按分段来传递的。所以尽管看上去等价的xargs echo和xargs -i echo {}并不等价。

[root@xuexi tmp]# ls | xargs echo

a b c d logdir one space.log shdir sh.txt test vmware-root

[root@xuexi tmp]# ls | xargs -i echo {}

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

既然使用-i后是分段传递的,这就意味着指定了它就无法实现按批传递多个参数了;并且如果使用多个大括号,意味着必须使用-i,那么也无法分批传递。

例如,想将数字1-10每3个数显示在start和end之间。效果如下:

start 1 2 3 end

start 4 5 6 end

start 7 8 9 end

start 10 end

由于指定了参数传递位置,所以必须使用-i,那么就无法一次传递3个数。要解决这个问题,就要想办法让每三个数分一次段然后使用-i传递,方法也就随之而来了。可以将每三个数分一次行写入一个文件。如:

[root@xuexi tmp]# cat <<eof>logdir/1.log

> 1 2 3

> 4 5 6

> 7 8 9

> 10

> eof

再使用xargs -i分批传递。

[root@xuexi tmp]# cat logdir/1.log | xargs -i echo “start {} end”

start 1 2 3 end

start 4 5 6 end

start 7 8 9 end

start 10 end

也可以使用多次xargs。很多时候无法解决分段的问题都可以通过多次使用xargs来解决。

[root@xuexi tmp]# echo {1..10} | xargs -n 3 | xargs -i echo “start {} end”

1.7.4 分批选项的生效规则

-i-L-n选项都是分批选项。它们的生效规则是,谁指定在后面,谁就生效。

下面给出证明。

下面-i放在-n、-L之后,结果是-n、-L被忽略。

[root@xuexi tmp]# ls | xargs -d”o” -n 2 -p -i echo {}

echo a

b

c

d

l ?… # 说明是一段一段输出,而不是两段一批输出,即-n选项被忽略

echo gdir

?…

echo ne space.l ?…

echo g

shdir

sh.txt

test

vmware-r ?…

echo ?…

echo t

x.txt

?…

[root@xuexi tmp]# ls | xargs -d”o” -L 3 -i -p echo {}   # 和上面的结果是一模一样的,说明-L选项被忽略

echo a

b

c

d

l ?…

echo gdir

?…

echo ne space.l ?…

echo g

shdir

sh.txt

test

vmware-r ?…

echo ?…

echo t

x.txt

?…

下面是-L放在-n后,结果是-n被忽略。

[root@xuexi tmp]# ls | xargs -d”o” -n 2 -p -L 1 echo  # 结果也是一段一段输出的,说明-n选项被忽略

echo a

b

c

d

l ?…

echo gdir

?…

echo ne space.l ?…

echo g

shdir

sh.txt

test

vmware-r ?…

echo ?…

echo t

x.txt

?…

根据上面的证明,其实也就给出了我认为-i选项是分批选项的理由,因为它覆盖了-n和-L,实际上在新的man xargs中已经给出了解释,它隐含”-L 1″。其实如果-i包含分批并传递这两个作用更严格一点

1.7.5 分批选项的一个典型应用

分批选项有时特别有用,例如脚本规定每次只能传输三个参数。有时候rm -rf的文件数量特别多的时候会提示参数列表太长而导致失败,这时就可以分批来按批删除,不仅rm -rf,其他很多本身就可以实现批量操作的命令都有可能出现这种参数列表过长的错误,如touch {1..10000000}也会提示错误。

假设目前在/tmp/longshuai/下有29W个.log文件,如果直接删除将会提示参数列表过长。

[root@xuexi tmp]# rm -fr /tmp/longshuai/*.log

-bash: /bin/rm: Argument list too long

这时如果使用xargs就可以分批丢给rm -fr处理了。下面一批10000个,删除29批。

[root@xuexi tmp]# cd /tmp/longshuai/ && ls | xargs -n 10000  rm -rf

如果不使用分批直接交给rm -rf也是一样可以执行成功的。如果想知道为什么可以请看后文xargs -s。

[root@xuexi tmp]# cd /tmp/longshuai/ && ls | xargs rm -rf

这里说下如何统计某个目录下的文件数量?ll后使用”-“开头来过滤出文件,然后使用wc统计行数。

[root@xuexi tmp]# ll /tmp/longshuai/ | grep “^-” | wc -l

1.8 终止行为之:xargs -E

指定终止符号,搜索到了指定的终止符就完全退出传递,命令也就到此结束。

-e选项也是,但是官方建议使用-E替代-e,因为-E是POSIX标准兼容的,而-e不是。

-E会将结果空格、制表符、分行符替换为空格并压缩到一行上显示。

据我测试,-E似乎只能和独立的xargs使用,和-0、-d配合使用时都会失效。那么稍后我就只测试和独立的xargs配合使用的情况了。

-E优先于-n、-L和-i执行。如果是分批选项先执行,则下面的第二个结果将压缩在一行上。

指定的终止符必须是完整的,例如想在遇到“xyz.txt”的符号终止时,只能指定完整的xyz.txt符号,不能指定.txt或者txt这样的符号。如何判断指定的终止符号是否完整,就-E与独立的xargs配合的情况而言分两种情况:如果没指定分批选项或者指定的分批选项是-n或者-L时,以空格为分割符,两个空格之间的段都是完整的;如果指定的分批选项是-i,则以段为分割符。

例如,下面的示例。观察实验结果中的one space.log分割的情况。

[root@xuexi tmp]# ls

a b c d logdir one space.log shdir sh.txt test vmware-root x.txt

[root@xuexi tmp]# ls | xargs -E one     #不指定分批选项

a b c d logdir

[root@xuexi tmp]# ls | xargs -n 2 -E one      #指定-n,one后面的所有的都终止传递

a b

c d

logdir

[root@xuexi tmp]# ls | xargs -L 2 -E”one”      #同-n 选项

a b

c d

logdir

[root@xuexi tmp]# ls | xargs -i -E”one space.log” echo {}         #和-i配合使用时指定完整的段才可以

a

b

c

d

logdir

[root@xuexi tmp]# ls | xargs -i -E”one”  -p echo {}          #非完整段终止失效

echo a ?…

echo b ?…

echo c ?…

echo d ?…

echo logdir ?…

echo one space.log ?…

echo shdir ?…

echo sh.txt ?…

echo test ?…

echo vmware-root ?…

echo x.txt ?…

1.9 xargs的处理总结

总结只有一张表。算是用来复习前面所述。

分割行为 特殊符号处理方式 分段方法 配合分批选项 分批方法
xargs 空格、制表符、分行符替换为空格,引号和反斜线删除。处理完后只有空格。如果空格、制表符和分行符使用引号包围则可以保留 结果继承处理前的符号性质(文本符号还是标记意义符号)。 -n 以分段结果中的每个空格分段,进而分批。不管是文本还是标记意义的空格,只要是空格
-L、-i 以标记意义上的空格分段,进而分批
不指定 结果作为整体输出
xargs -d xargs -d 不处理文本意义上的符号,所有标记意义上的符号替换为换行符\n,将-d指定的分割符替换为标记意义上的空格。结果中除了最后的空行和-d指定的分割符位的分段空格,其余全是文本意义上的符号 按照-d指定的符号进行分段,每个段中可能包含文本意义上的空格、制表符、甚至是分行符。 -n、-L、-i 以标记意义上的符号(即最后的空行和-d指定分隔符位的空格)分段,进而分批。分段结果中保留所有段中的符号,包括制表符和分行符。
不指定 结果作为整体输出
xargs -0 不处理文本意义上的符号,将非\0的标记意义上的符号替换为\n,将\0替换为空格。结果中除了最后空行和\0位的空格,其余都是文本意义上的符号 以替换\0位的空格分段,每个段中可能包含文本意义上的空格、制表符、甚至是分行符。如果没检测到\0,则只有一个不可分割的段。 -n、-L、-i 检测到\0时,以标记意义上的符号(即最后的空行和\0位的空格)分段,进而分批。分段结果中保留所有段中的符号,包括制表符和分行符。
未检测到\0时,整个结果作为不可分割整体,使用分批选项是无意义的
不指定 结果作为整体输出

1.10 xargsfind的结合

xargs和find同属于一个rpm包findutils,xargs原本就是为find而开发的,它们之间的配合应当是天衣无缝的。

一般情况下它们随意结合都无所谓,按正常方式进行即可。但是当删除文件时,特别需要将文件名含有空白字符的文件纳入考虑。

[root@xuexi tmp]# touch one;touch space.log

[root@xuexi tmp]# ls

a b c d logdir one one space.log shdir sh.txt space.log test vmware-root

现在假设通过find搜索到了one space.log。

[root@xuexi tmp]# find -name “* *.log”

./one space.log

如果直接交给xargs rm -rf,由于xargs处理后不指定分批选项时以空格分段,所以改名了的行为将是rm -rf ./one space.log,这表示要删除的是当前目录下的one和当前目录下的space.log,而不是one space.log。

有多种方法可以解决这个问题。思路是让找到的“one space.log”成为一个段,而不是两个段。我给出了常见的两种。

方法一:通过常用的find的-print0选项使用\0来分隔而不是\n分隔,再通过xargs -0来配对保证one space.log的整体性。因为-print0后one space.log的前后各有一个\0,但是文件名中间没有。

[root@xuexi tmp]# find -name “* *.log” -print0 | xargs -0 rm -rf

当然,能使用-0肯定也能使用-d了。

[root@xuexi tmp]# find -name “* *.log” -print0 | xargs -d “x” rm -rf     #随意指定非文件名中的字符都行,不一定非要\0

方法二:不在find上处理,在xargs上处理,只要通过配合-i选项,就能宣告它的整体性。

[root@xuexi tmp]# find -name “* *.log” | xargs -i rm -rf “{}”

相较而言,方法一使用的更广泛更为人所知,但是方法二更具有通用性,对于非find如ls命令也可以进行处理。

还可以使用tr将find的换行符换成其他符号再xargs分割配对也行。

除了find -print0可以输出\0字符,Linux中还有其他几个命令配合参数也可以实现:locate -0,grep -zgrep -Z,sort -z

1.11 xargs -s之为什么ls | xargs rm -rf能执行成功?

使用下面的示例配合图来解释。

[root@xuexi tmp]# cd logdir

[root@xuexi logdir]# touch {1..1000000}

-bash: /bin/touch: Argument list too long

[root@xuexi logdir]# echo {1..1000000} | xargs  touch      #执行的时候记得使用-p选项,否则慢慢等吧。

问题一:正常创建批量文件touch {1..1000000}是无法执行成功的,会提示参数列表过长。但是上面的最后一个命令为什么能执行成功?

问题二:xargs处理后如果不指定-n选项,那么它是整体传递的,如果这个整体非常非常大,如上面的100W个参数,按理说touch也是无法成功的。为什么成功了?

xargs有一个默认的选项-s,它指定每次传递的最大字节数,如果不显式指定-s,系统默认是128KB。也就是说如果一次传递的参数很多很大,那么将由系统自动分割为每128KB传递一次。这就是上面的命令能执行成功的原因。

上面的100W个参数,以差不多每个参数5个数字位加一个分段位空格共6个字节计算,128K有128*1024/6=21845个数字,这和我使用-p测试的询问位置是接近的,如下图,由于前10000个数字少于5个字节,所以比21845多一点。第二次停止的位置是45539,45539-23695=21844,这次传递的全是5个字节的,这和计算的结果几乎完全相同。

同理“ls | xargs rm -rf”也是一样的,如果参数列表非常大,则每次传递128K的参数给rm。

1.12 创建文件名包含分行符的文件

创建文件名包含空格的文件是一件很轻松的事情,但是想创建包含制表符、分行符甚至是其他特殊符号的文件呢?

因为xargs允许传递参数到命令的任意参数位,并且传递的参数还可以变换为包含各种形式的特殊符号,所以使用它可以轻松实现。例如创建包含分行符的文件。

[root@xuexi tmp]# ls

a b c d logdir one space.log shdir sh.txt test vmware-root

[root@xuexi tmp]# ls | xargs -0

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

在此基础上创建一个.sh文件,这个文件将奇形怪状,因为文件名竟然包含了分行符(Linux中文件名除了“/”“\0”外所有字符都允许包含在内)

[root@xuexi tmp]# ls | xargs -0 -i touch {}.sh

[root@xuexi tmp]# ls

a b d one space.log sh.txt vmware-root

a?b?c?d?logdir?one space.log?shdir?sh.txt?test?vmware-root?.sh c logdir shdir test

看上去只是有几个问号,但是使用?是无法定位它的。

[root@xuexi tmp]# find -name “*[\?]*”        #搜索没结果

 

或者

 

[root@xuexi tmp]# rm -rf a     #按两次tab键

a/

a^Jb^Jc^Jd^Jlogdir^Jone space.log^Jshdir^Jsh.txt^Jtest^Jvmware-root^J.sh

现在使用xargs就可以轻松显示它的文件名。

[root@xuexi tmp]# ls | xargs -0

a

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

.sh

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

不能直接使用xargs显示,因为它会压缩空白符号成空格。

[root@xuexi tmp]# ls | xargs

a a b c d logdir one space.log shdir sh.txt test vmware-root .sh b c d logdir one space.log shdir sh.txt test vmware-root

删除它。

[root@xuexi tmp]# rm -f a*.sh

如果想创建文件名只包含下面结果的abcd前四行的.sh文件呢?

[root@xuexi tmp]# ls | xargs -0

a

b

c

d

logdir

one space.log

shdir

sh.txt

test

vmware-root

参考下面的。

[root@xuexi tmp]# ls | xargs -n 1 -e”logdir” | xargs -0 -i touch {}.sh

这就需要理解前面介绍的xargs的分割和传递方法了。

也可以使用下面更简单容易理解的:

[root@xuexi tmp]# ls | head -n 4 | xargs -0 -i touch {}.sh

[root@xuexi tmp]# echo -e “a\nb\nc\nd” | xargs -0 -i touch {}.log

那么以相同的方法创建文件名中包含制表符的文件就easy了。

[root@xuexi tmp]# echo  -e “a\tb\tc\td” | xargs -0 -i touch {}.log

1.13 高速并发处理之:xargs -P

使用xargs的分批行为,除了可以解决一些问题,还可以一次性将多个分批交给不同进程去处理,这些进程可以使用多个cpu执行,效率可谓大幅提高。

“-P N”选项可以指定并行处理的进程数量为N。不指定”-P”时,默认为1个处理进程,也就是串行执行。指定为0时,将尽可能多地开启进程数量。当xargs正在运行时(也就是还有分批正在处理),可以发送SIGUSR1信号给xargs进程,表示增加一个处理进程,同样,可以向xargs进程发送SIGUSR2进程,表示减少一个处理进程。但需要注意,即使发送SIGUSR2信号,xargs也不会中断正在执行任务的进程,也就是说,在某个进程处理当前分批任务结束之前,不会被中断,只有当前分批任务执行完毕,准备接下一个分批任务时,才会被xargs给杀掉。

例如,一个简单的sleep命令,在不使用”-P”的时候,默认是一个进程按批的先后进行处理:

[root@xuexi ~]# time echo {1..4} | xargs -n 1 sleep

 

real    0m10.011s

user    0m0.000s

sys     0m0.011s

总共用了10秒,因为每批传一个参数,第一批睡眠1秒,然后第二批睡眠2秒,依次类推,还有3秒、4秒,共1+2+3+4=10秒。

如果使用-P指定4个处理进程:

[root@xuexi ~]# time echo {1..4} | xargs -n 1 -P 4 sleep

 

real    0m4.005s

user    0m0.000s

sys     0m0.007s

结果总共才用了4秒,因为这4个分批同时交给了4个进程同时处理,所以取最长睡眠时间。

以下是一次并行执行过程中,CPU的使用情况:

[root@xuexi ~]# ps -eo pid,args,psr,pcpu | grep slee[p]

25566 xargs -n 1 -P 5 sleep         3  0.0

25567 sleep 20                      1  0.0

25568 sleep 21                      2  0.0

25569 sleep 22                      0  0.0

25570 sleep 23                      2  0.0

25571 sleep 24                      3  0.0

在上面的结果中,启动了5个sleep进程,这5个进程分别用了cpu0、cpu1、cpu2和cpu3共4个cpu,因为我的虚拟机只给分配了4核心cpu。

那么,xargs的哪些选项可以通过”-P”的并行能力来提升效率?其实,只要能分批的选项,都可以使用”-P”,包括”-n”、”-L”和”-i”。在man xagrs中,只提到了”-n”和”-L”可以结合”-P”,并没有提到”-i”,但我前面已经验证过了,”-i”其实也是分批行为,也能结合”-P”的并行功能使用。

下面的示例,可以验证”-i -P”结合:

[root@xuexi ~]# time echo -n {1..4} | xargs -d” ” -i -P 4 sleep {}

 

real    0m4.003s

user    0m0.000s

sys     0m0.005s

如果需要发送信号,来增、减并行进程数量,可以向xargs进程发送SIGUSR1和SIGUSR2信号,例如:

kill -USR1 `pgrep -f “xargs”`

虽然xargs提供了这样的并行处理能力,但说实话,用到的机会并不多,它毕竟只是一个参数传递工具。我也专门写了一篇关于xargs高效并行的文章,见shell高效处理文本:xargs并行处理。另一个gnu工具parallel(装上epel源,yum -y install parallel即可)在并行处理上用的比较多,比如对一个巨大的文件利用sort进行排序时,使用parallel并行排序,可以大幅提升效率,即使sort自身已经足够完美。非常幸运的是,在你把xargs学到了这里,使用parallel将非常简单,因为它的选项和行为模式和xargs是基本一致的。

1.14 xargs一次性传递多个参数

默认情况下,xargs每次只能传递一条分割的数据到命令行中作为参数。但有时候想要让xargs一次传递2个、3个参数到命令行中。

例如有一个文件保存了wget想要下载的大量链接和链接对应要保存的文件名,一行链接一行文件名。格式如下:

https://www.xxx.yyy/a1

filename1

https://www.xxx.yyy/a2

filename2

https://www.xxx.yyy/a3

filename3

现在想要通过读取这个文件,将每一个URL和对应的文件名传递给wget去下载:

wget ‘{URL}’ -O ‘{FILENAME}’

xargs自身的功能无法一次性传递多个参数(parallel命令可以,而且方式多种),只能寻求一些技巧来实现。

cat url.txt | xargs -n2 bash -c ‘wget “$1” -O “$2″‘

1.15 xargs的不足之处(此处必看)

其实是xargs的限制和缺点,但因为通过”-i”选项方便演示,所以此处使用”-i”选项。注意,不是”-i”选项的缺陷。

由于xargs -i传递数据时是在shell执行xargs命令的时候,根据shell解析命令行的流程 ,xargs后的命令如果有依赖于待传递数据的表达式,则无法正确执行。

例如,无法通过xargs传递数值做正确的算术扩展:

[root@xuexi logdir]# echo 1 | xargs -I “x” echo $((2*x))

0

无法将数据传递到命令替换中。

[root@xuexi ~]# echo /etc/fstab | xargs -i `cat {}`
cat: {}: No such file or directory

参考下图的shell命令行解析过程。

这时要通过xargs正确实现目标,只能改变方法或寻找一些小技巧,例如:

[root@xuexi ~]# echo 1 | xargs -i expr 2 \* {}   # 感谢楼下评论者提供的expr思路
2
[root@xuexi ~]# echo /etc/fstab | xargs -i cat $(echo {})

另外,xargs无法处理bash内置命令。例如:

[root@xuexi ~]# echo /etc | xargs -i cd {}
xargs: cd: No such file or directory

 

Linux 命令大全 Linux 命令大全

 

群晖NAS外网公开分享术之分享文件、分享照片、分享影片、分享音乐

       顾名思义,能施展群晖NAS之外网公开分享术的前提,是需要你的群晖接入的宽带可以外网访问,外网访问无非就是两种:

1、有公网IP,使用域名解析+端口映射进行外网访问;

2、没有公网IP,使用包括群晖官方的Quick Connect穿透、自建FRP内网穿透、组网ZeroTier穿透、利用花生壳或者蒲公英进行穿透等各种内网穿透;

在做以下操作之前,确认你的群晖已经可以正常外网访问。本文使用的是第1种,并且已经事先做好域名解析和端口映射,然后在群晖控制面板-外部访问-高级设置,把访问群晖的域名和端口设置好。(如果你已经登录QC的,共享链接会显示QC地址,我没有登录QC)

 


 

群晖NAS外网公开分享术之【分享文件】

一、在群晖桌面打开File Station,找到你想分享的文件,点右键,共享;

 

二、系统默认此共享长期有效。如果需要设置开始共享的时间和共享结束的时间,可以在弹出的窗口点“有效期”,设置相应的时间,点“保存”;

 

 

三、系统默认此共享链接公开分享。如果需要设置密码访问的,可以在“启用安全共享”处打勾,选“与他人共享”并设置密码,点“保存”;

 

四、共享链接显示的链接就是分享地址(类似百度网盘分享那种方式),复制出来就可以;

 

五、为了方便手机用户分享,群晖还提供了二维码分享,点“获取QR码”,就看到分享链接的二维码,把这个二维码发给朋友,用微信扫一扫的功能,就可以访问;

 

六、电脑访问共享的链接的效果;

 

 

七、手机用微信扫一扫二维码的访问效果;

 

 

八、如果想取消分享,在File Station的菜单“工具”—“共享链接管理器”,找到要取消分享的链接,点“删除”即可。

 


 

群晖NAS外网公开分享术之【分享照片】

 

一、打开群晖Moments,先勾选需要分享的照片,再点右上角工具栏的第一个工具“共享”;

 

二、系统默认是没有分享,我们需要把“已禁用共享链接”的开关点一下;

 

三、让它变成“已启用共享链接”,同时把链接复制出来,点确定,就可以分享了;

 

四、如果需要取消Moments的分享,在Moments点“相册”,再点“共享”;

 

 

五、就看到“与他人共享”的所有内容,找到你要取消共享的相册,在右边三个小点点一下,选“停止共享”;

 

六、系统会提示是否继续,选“停止共享”,就可以成功取消共享了;

 

 


 

群晖NAS外网公开分享术之【分享影片】

 

一、打开群晖Video Station,点你要分享的影片进去,找到“公开共享”这个按钮,系统默认是没有启用共享,图标是灰色的;

 

 

二、在弹出的窗口中,勾选“公共共享”,并把链接复现出来;

 

三、打开分享链接的效果,是可以直接在线播放影片的;

 

 

四、如果要取消共享,找到已经分享的影片,此时会看到共享的图标是绿色的,再次点进去;

 

 

五、把公开共享的打勾去掉,点“完成”;

 

 


 

群晖NAS外网公开分享术之【分享音乐】

 

一、打开群晖的Audio Station,在左边菜单点“按专辑分类”,找到你要分享的专辑,点右键选“公开共享”;

 

 

二、播放列表名称可以根据需要改名,可以用中文、英文和数字,但是不能使用符号,也可以根据自己的需要设置分享的有效期,确认无误后点“确定”;

 

 

三、在弹出的窗口中点前往链接;

 

 

四、打开分享链接的效果,可以直接在线听歌;

 

 

五、返回刚才的窗口,可以把当前分享的链接复制出来,再点完成;

 

六、取消分享的方法:我不知道这个是系统BUG还是我操作不对,反正在Audio  Station的共享歌曲里面没有显示我已经分享的音乐。如果你们知道怎么取消分享,欢迎在下方留言。

利用第三方FFMPEG解码器让群晖的Video Station完美支持DTS、EAC3、TrueHD

       群晖公司由于版权的原因,群晖自带的Video Station无法播放带有DTS、EAC3、TrueHD等编码格式的视频文件,严重影响使用效果。本文将利用第三方的ffmpeg替换VideoStation中自带的ffmpeg解码器,完美播放带有DTS、EAC3、TrueHD等编码格式的视频,实现对全视频格式的支持。

一、安装ffmpeg解码器

1、在群晖套件中心,设置,套件来源,新增,名称(任意写),位置:http://packages.synocommunity.com

 

 

如果按照上述方法不能正常安装ffmpeg套件的,可以到这个地址:https://github.com/th0ma7/synology/tree/master/packages
请根据自己的CPU架构下载对应的ffmpeg安装包,上传到群晖的套件中心安装,目前常见的构架有:

(1)DS918+的CPU架构是apollolake

(2)DS3617xs的CPU架构是broadwell

(3)DS3615xs的CPU架构是bromolow

其他的CPU架构与之对应的版本可以在这查询:https://github.com/SynoCommunity/spksrc/wiki/Architecture-per-Synology-modelffmpeg

 

二、安装VideoStation
在套件中心安装Video Station,本文安装的Video Station版本为2.4.7-1603。

 

 

三、我们先来测试一下没修改之前,用Video Station播放带有DTS和EAC3编码的视频文件,会是怎样的

这个是带EAC3编码的视频文件

 

 

用Video Station播放EAC3编码的界面提示

 

 

这个是带DTS编码的视频文件

 

 

用Video Station播放DTS编码的界面提示

 


四、用第三方的FFMEG代替

进群晖的控制面板,终端机和SNMP,勾选启动SSH功能,并调整对应的端口号。然后到电脑上打开XSheell软件,用root用户以SSH的方式登录到群晖(还没开启root的,请自己去开启:https://wp.gxnas.com/?s=root),执行以下命令:

1、调整文件权限

sudo chmod +s /var/packages/ffmpeg/target/bin/ffmpeg
sudo chmod +s /var/packages/ffmpeg/target/bin/ffprobe
sudo chmod +s /var/packages/ffmpeg/target/bin/vainfo

 

2、备份原文件

sudo sed -i'-BACKUP' -e 's/eac3/ZAAP/' -e 's/dts/ZAP/' -e 's/truehd/ZAPZAP/' /var/packages/VideoStation/target/lib/libsynovte.so
sudo mv /var/packages/VideoStation/target/bin/ffmpeg /var/packages/VideoStation/target/bin/ffmpeg-BACKUP
sudo mv /var/packages/VideoStation/target/bin/ffprobe /var/packages/VideoStation/target/bin/ffprobe-BACKUP
sudo mv /var/packages/VideoStation/target/bin/vainfo /var/packages/VideoStation/target/bin/vainfo-BACKUP

 

3、更改/var/packages/VideoStation/target/ffmpeg为自定义脚本,调用第三方的ffmpeg解码器(命令已经更新,下图为之前的截图,命令有区别请忽略)

echo "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" | base64 -d | gunzip > /var/packages/VideoStation/target/bin/ffmpeg

 

4、更新ffprobe vainfo

sudo ln -s /var/packages/ffmpeg/target/bin/ffprobe /var/packages/VideoStation/target/bin/ffprobe
sudo ln -s /var/packages/ffmpeg/target/bin/vainfo /var/packages/VideoStation/target/bin/vainfo

 

5、解除对EAC3、DTS、TrueHD的屏蔽

sudo sed -i'-BACKUP' -e 's/eac3/ZAAP/' -e 's/dts/ZAP/' -e 's/truehd/ZAPZAP/' /var/packages/VideoStation/target/lib/libsynovte.so

 

6、调整文件权限

sudo chmod +x /var/packages/VideoStation/target/bin/ffmpeg
sudo chmod +s /var/packages/VideoStation/target/bin/ffmpeg
sudo chown root:VideoStation /var/packages/VideoStation/target/bin/ffmpeg

 

 

五、接下来我们再用Video Station来播放刚才未能播放的文件做一下测试

1、DTS播放正常

 

2、EAC3播放正常

六、非常完美!

 


如果DSM7.X版本要解决同样的问题,请参考《利用第三方解码器FFMPEG让群晖DSM7.X版本的Video Station支持DTS视频编码和EAC3音频编码》。