首页
碎碎念
东邻西舍
本站信息
前来吐槽
统计
Search
1
openwrt系统上安装第三方插件
26,758 阅读
2
ubuntu下zerotier的基本使用教程
13,578 阅读
3
给小米R3G更换系统:从padavan刷成openwrt
12,848 阅读
4
openwrt使用第一步:设置上网拨号
10,741 阅读
5
openwrt无线中继功能:实现不插网线就能上网
9,519 阅读
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
登录
Search
标签搜索
Linux
建站
Java
踩坑实录
Ubuntu
MySQL
折腾搞机
HTML
CSS
MyBatis
Spring
SQL
Nginx
路由器
树莓派
OpenWrt
Maven
Git
Win10
只言片语
知识分子没文化
累计撰写
83
篇文章
累计收到
152
条评论
首页
栏目
学习点滴
Java
Web前端
Linux
踩坑实录
折腾搞机
关于建站
只言片语
页面
碎碎念
东邻西舍
本站信息
前来吐槽
统计
搜索到
23
篇与
的结果
2021-09-01
Linux设置定时任务:cron的用法
目录: 0x01.cron是什么 0x02.crontab命令语法 0x03.crontab任务规则 1、标准规则 2、非标准规则 0x04.其他 1、定时任务生效时间 2、定时任务不生效 3、环境变量相关问题 0x01.cron是什么 cron该词来源于希腊语chronos(χρόνος),原意是时间。是一款类Unix的操作系统下的基于时间的任务管理工具。用户可以通过cron在固定时间、间隔下,运行指定任务(可以是命令和脚本)。 cron的操作由crontab(cron 表)文件驱动,该文件是一个配置文件,用于指定按给定计划定期运行的shell命令。crontab文件存储在保存作业列表和cron守护程序的其他指令的位置。 用户可以拥有自己的个人crontab文件,并且通常有一个系统范围的crontab文件(通常在/etc或/etc的子目录中),只有系统管理员才能编辑。 要新添加一个定时任务,需要编辑crontab文件(即cron表),在其中添加相关任务即可,定时任务的编写规则见第三条。 0x02.crontab命令语法 crontab [ -u user ] { -l | -r | -e } 说明: -u user参数可以设定某一个用户的cron表,前提是必须要有相关权限(比如root权限),才能够设定其他人的crontab文件。如果不使用-u user的话,就是表示设定自己的crontab文件 -e:执行文字编辑器来设定时程表,内定的文字编辑器是vi -r:删除目前的cron表中的所有任务 -l:列出目前cron表中的所有任务 综上,简单总结基本的常用命令: 直接编辑crontab文件: crontab # 这个命令执行完之后,直接接受控制台中的输入流作为任务命令 用编辑器编辑crontab文件: crontab -e 删除当前所有的任务规则: crontab -r 列出目前所有的定时任务: crontab -l 其中,可以在crontab之后加上-u user的参数来操作指定用户对应的crontab文件,前提是必须要有相关权限(比如root权限)。否则就是操作自己的crontab文件。 0x03.crontab任务规则 1、标准规则 简单理解就是执行时间+ 命令的形式。 其中时间是由五个域组成,分别为分钟、小时、天、月份、星期,每个域可以放置单一或多个数值,同时每个域之间都有空格来进行区分,如下所示: ┌──────────── 分钟 (0 - 59) │ ┌──────────── 小时 (0 - 23) │ │ ┌──────────── 天 (1 - 31) │ │ │ ┌──────────── 月份 (1 - 12) │ │ │ │ ┌──────────── 星期中的某天 (0 - 6) (从周日开始算到周六) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ * * * * * [用户名] <要执行的命令> 在用户层次的crontab文件中,用户名是可以省略的参数,而系统层次的crontabs文件的任务经常会指定一个或以上的用户进行执行,因此需要增加用户名字段。 注: 在某些系统里,星期日也可以为7 不很直观的用法:如果日期和星期同时被设定,那么当其中的一个条件被满足时,指令便会被执行。而不是同时满足 为方便个人记忆,前5个域可称之为分时日月周 表示时间的每个域里除了可以是具体数值,还可以是表达式或者是多个数值: 逗号(,)列举出多个数值,例如:1,3,4,7 * * * * echo hello world表示在每小时的1、3、4、7分时,打印"hello world"。 连词符(-)表示一个数值范围,例如:1-6 * * * * echo hello world ,表示每小时的1到6分钟内,每分钟都会打印"hello world"。 星号(*)代表任何可能的值。例如:在“小时域”里的星号等同于“每一个小时”。 百分号(%) 表示“每"。例如:*%10 * * * * echo hello world表示,每10分钟打印一回"hello world"。 表格说明: 域 是否必填 允许的值 分钟 是 0–59 小时 是 0–23 天 是 1–31 月份 是 1–12、JAN–DEC 星期中的某天 是 0–6 、SUN–SAT 2、非标准规则 仅由某些cron程序的扩展版本支持,标准版本并不支持。以下这部分是在维基百科英文版本部分就着谷歌大概翻译出来的,如果有误,请以维基百科词条中的原文内容为准,词条链接在文末。 L:“L”代表“最后”。 当在星期字段中使用时,它允许指定诸如给定月份的“最后一个星期五”(“5L”)之类的构造。 在day-of-month字段中,它表示该月的最后一天。 W:'W' 字符允许用于日期字段。 此字符用于指定离给定日期最近的工作日(周一至周五)。 例如,如果将“15W”指定为day-of-month字段的值,则其含义为:“距该月的15日最近的工作日”。 因此,如果15号是星期六,触发器会在14号星期五触发。 如果15日是星期日,触发器会在16日星期一触发。 如果15号是星期二,那么它会在15号星期二触发。 但是,如果将“1W”指定为月份中的某天的值,并且第1天是星期六,则触发器会在第3天的星期一触发,因为它不会“跳过”一个月的天数边界。 仅当月中的某一天是一天,而不是天范围或天列表时,才可以指定“W”字符 #:'#' 允许用于星期字段,并且后面必须跟一个1到5之间的数字。 它允许指定诸如给定月份的“第二个星期五”之类的结构。 例如,在星期字段中输入5#3对应于每个月的第三个星期五 ?:用于代替“*``**”以将月中的某天或一周中的某天留空 /:用于表示跳过某些给定的数。例如,*/3在小时域中等于0,3,6,9,12,15,18,21等被3整除的数; H:'H'表示替换了“散列”值。 因此不是一个固定的数字,例如表示每小时后的20分钟,表示该任务在一个未指定但不变的时间执行一次。 这允许随着时间的推移分散任务,而不是让所有任务同时开始并争夺资源。 0x04.其他 1、定时任务生效时间 需要注意的是,添加定时任务之后crontab需要等待几分钟才会生效,若要使立即生效需要重启cron服务: service cron restart 2、定时任务不生效 如果crontab定时任务不生效,可以排查以下几点: 1、Linux的时间与互联网时间不一致,而crontab中写的互联网时间 2、定时执行的.sh文件无执行权限 3、crontab进程未启动,crontab进程会每分钟去扫描/etc/crontab中的定时任务,故修改后无需重启该进程(重启只会让定时配置马上生效) 4、crontab进程配置文件中未指定具体执行用户 3、环境变量相关问题 在crontab文件中定义多个调度任务时,需要特别注意的一个问题就是环境变量的设置,因为我们手动执行某个脚本时,是在当前shell环境下进行的,程序能找到环境变量;而系统自动执行任务调度时,除了默认的环境,是不会加载任何其他环境变量的。因此就需要在crontab文件中指定任务运行所需的所有环境变量。 不要假定cron知道所需要的特殊环境,它其实并不知道。所以用户要保证在shell脚本中提供所有必要的路径和环境变量,除了一些自动设置的全局变量。以下三点需要注意: 脚本中涉及文件路径时写绝对路径; 脚本执行要用到环境变量时,通过source命令显式引入,例如: #!/bin/sh source /etc/profile 当手动执行脚本没问题,但是crontab不执行时,可以尝试在crontab中直接引入环境变量解决问题,例如: * * * * * . /etc/profile; /xx/xx/test.sh 参考资料: Linux crontab 命令 | 菜鸟教程 (runoob.com) cron - Wikipedia Cron - 维基百科,自由的百科全书 (wikipedia.org) OpenWrt任务定时cron_hzlarm的博客-CSDN博客_openwrt 定时任务
2021年09月01日
1,592 阅读
0 评论
0 点赞
2021-06-15
使用蚂蚁笔记搭建个人云笔记
目录: 前言 1.安装MongoDB 2.下载 3.安装 4.启动 5.其他 5.1 加入开机自启 5.2 设置nginx代理 环境说明: 系统:ubuntu 20.04 数据库:MongoDB 4.4.6 leanote V2.6.1 前言 蚂蚁笔记官网:Leanote 蚂蚁笔记,有极客范的云笔记! 类似于有道笔记、印象笔记等,蚂蚁笔记也是一款笔记软件,最重要的是蚂蚁笔记是开源的,这就意味可以自己搭建服务端。而我的网站平时访客不多,服务器大部分时候处于闲置状态,所以搭建一个属于自己的云笔记是一个不错的选择。 蚂蚁笔记github首页地址:Leanote - open source alternative to Evernote · GitHub,可以下载到各个平台的蚂蚁笔记客户端。 1.安装MongoDB 蚂蚁笔记使用的是MongoDB来存储文章数据,并不是mysql。 ubuntu系统下安装MongoDB的过程参考我的另一篇博客:ubuntu安装MongoDB数据库 - Roookie博客 | 记录 · 收纳 · 分享 (langp.wang),此处不再赘述。 2.下载 用以下命令下载安装文件: sudo wget https://sourceforge.net/projects/leanote-bin/files/2.6.1/leanote-linux-amd64-v2.6.1.bin.tar.gz 然后解压: sudo tar -zxvf leanote-linux-amd64.v2.6.1.bin.tar.gz 解压后的文件夹名称为”leanote“。 如果要手动下载也行,蚂蚁笔记下载地址:Leanote。下载时选择“leanote-linux-amd64.v2.6.1.bin.tar.gz”: 3.安装 先往MongoDB中导入初始数据: # 执行命令时位于“leanote”同级目录下,此命令适用于MongoDB没有开启安全授权的情况 mongorestore -h localhost -d leanote --dir leanote/mongodb_backup/leanote_install_data/ # 当MongoDB开启安全授权时,需要加入“--authenticationDatabase”(后面是用户所在的数据库)与“-u”参数(后面是用户名)执行此命令,否则就会导入失败 mongorestore -h localhost -d leanote --dir leanote/mongodb_backup/leanote_install_data/ --authenticationDatabase admin -u root 控制台界面滚动几下之后,出现“499 document(s) restored successfully. 0 document(s) failed to restore.”字样提示,说明导入成功。 接下来为leanote数据库添加一个账户: # 进入数据库控制台 mongo # 首先切换到leanote数据库下 use leanote; # 添加一个用户root, 密码是abc123 db.createUser({ user: 'root', pwd: 'abc123', roles: [{role: 'dbOwner', db: 'leanote'}] }); # 测试下是否正确,返回1表示正确 db.auth("root", "abc123"); 并修改配置文件leanote/conf/app.conf,找到下面两行: # 填入上面设置的账户密码 db.username=root # if not exists, please leave blank db.password=abc123 # if not exists, please leave blank 根据蚂蚁笔记的官方安装文档,还要将配置文件中的app.secret一项任意做一些更改,否则会有安全隐患 4.启动 蚂蚁笔记的启动脚本位于leanote/bin/目录下,执行脚本启动命令: sudo bash leanote/bin/run.sh 启动后,蚂蚁笔记默认运行在9000端口上,访问的话需要在云服务器的安全组中放行这个端口。访问IP地址或者域名的9000端口即可进入首页: 5.其他 5.1 加入开机自启 将蚂蚁笔记加入开机自启,在/etc/init.d目录下新建一个脚本文件: sudo nano /etc/init.d/leanote.sh 输入以下内容,并根据注释更改相关内容: #!/bin/bash ### BEGIN INIT INFO # Provides: leanote # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start leanote # Description: start leanote ### END INIT INFO # 上面一部分不可少,下面这一部分是命令内容,以exit 0结束 bash /root/leanote/bin/run.sh exit 0 修改完之后ctrl +o保存,ctrl +x退出。执行以下语句给脚本文件足够的执行权限: sudo chmod 755 leanote.sh 最后再将脚本添加到开机启动: sudo update-rc.d leanote.sh defaults 90 # 90表示执行的优先级,数字越大表示越晚执行。 附:移除脚本命令: sudo update-rc.d -f [脚本文件名] remove 5.2 设置nginx代理 为了方便访问,我们可以单独设置一个域名来访问蚂蚁笔记,原理是利用nginx进行反向代理,将本机的9000端口的所有请求转发到新域名上,新建一个nginx配置: upstream note { server 127.0.0.1:9000; } server{ listen 80; # SSL端口配置 listen 443 ssl; # domainName是域名 server_name domainName; location / { proxy_pass http://note; } # 以下为SSL配置部分 没有配置SSL证书的直接删除以下配置即可 # 设置http强制跳转https if ($server_port = 80){ rewrite ^/(.*) https://$host/$1 permanent; } #需要将cert-file-name.pem替换成已上传的证书文件的名称。 ssl_certificate cert-file-name.pem; #需要将cert-file-name.key替换成已上传的证书密钥文件的名称。 ssl_certificate_key cert-file-name.key; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DHE; #表示使用的TLS协议的类型。 ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; } 然后重启nginx配置即可: nginx -s reload 附上官方github的wiki:Home · leanote/leanote Wiki · GitHub
2021年06月15日
1,745 阅读
0 评论
0 点赞
2021-06-11
ubuntu安装MongoDB数据库
目录: 前言 1、导入MongoDB公共 GPG 密钥 2、创建列表文件 3、用命令安装MongoDB 3.1 安装最新版本 3.2 安装指定版本 4.启动MongoDB 4.1 systemed(systemctl): 4.2 System V Init(service): 5.管理MongoDB数据库 6.卸载MongoDB 附:在更改MongoDB连接端口时遇到的坑 环境说明: 系统:ubuntu 20.04 MongoDB:V4.4.6 前言 MongoDB是一种面向文档的数据库管理系统,即非关系型数据库,用C++等语言撰写而成,以解决应用程序开发社区中的大量现实问题。MongoDB由MongoDB Inc.(当时是10gen团队)于2007年10月开发,2009年2月首度推出,现以服务器端公共许可(SSPL)分发。 MongoDB社区版是免费的,包含Windows、Linux和OS X的二进制版本。许多Linux包管理系统曾经包含MongoDB的包,由于许可证变更,MongoDB已经从Debian、Fedora和Red Hat Enterprise Linux发行版中被移除。 本篇博客中ubuntu安装MongoDB的过程参考自MongoDB官网:Install MongoDB Community Edition on Ubuntu — MongoDB Manual,其他派系Linux安装MongoDB请参考:Install MongoDB Community Edition on Linux — MongoDB Manual。 1、导入MongoDB公共 GPG 密钥 用以下命令从https://www.MongoDB.org/static/pgp/server-4.4.asc导入MongoDB公共GPG密钥: wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - 出现OK字样表示导入成功。若中途提示gnupg未安装,用以下命令安装: sudo apt-get install gnupg 安装之后尝试重新导入,直至出现OK字样。 2、创建列表文件 在ubuntu上创建列表文件/etc/apt/sources.list.d/mongodb-org-4.4.list,不同版本的ubuntu命令也不同(其实只是命令中的版本号不同): # Ubuntu 20.04 (Focal): echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list # Ubuntu 18.04 (Bionic) echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list # Ubuntu 16.04 (Xenial) echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list 若不确定系统版本号,用“lsb_release -a”命令查看,“Codename”一项即是版本号 3、用命令安装MongoDB 3.1 安装最新版本 输入以下命令安装MongoDB,默认安装最新版: # 更新软件源中的所有软件列表: sudo apt update sudo apt-get install -y mongodb-org 3.2 安装指定版本 如果要安装指定版本,必须分别指定每个组件包和版本号,比如: sudo apt-get install -y mongodb-org=4.4 mongodb-org-server=4.4 mongodb-org-shell=4.4 mongodb-org-mongos=4.4 mongodb-org-tools=4.4 如果只安装MongoDB-org = 4.4,并且不包含组件包,那么无论指定了哪个版本,都将安装每个 MongoDB 包的最新版本。 在安装完指定的MongoDB版本后,用apt命令升级软件时仍会升级到新版本的MongoDB。因此为了防止意外升级,可以将软件包固定在当前安装的版本上: echo "mongodb-org hold" | sudo dpkg --set-selections echo "mongodb-org-server hold" | sudo dpkg --set-selections echo "mongodb-org-shell hold" | sudo dpkg --set-selections echo "mongodb-org-mongos hold" | sudo dpkg --set-selections echo "mongodb-org-tools hold" | sudo dpkg --set-selections 4.启动MongoDB 要运行和管理mongod进程,将使用操作系统内置的init系统。Linux的新版本倾向于使用systemd(使用 systemctl 命令) ,而Linux的旧版本倾向于使用System v init(使用service命令)。这就导致不同的init系统操作mongod进程的命令不同,请根据系统的不同来使用。 如果不确定平台使用的是哪个init系统,请运行以下命令: ps --no-headers -o comm 1 然后根据结果选择下面的相应命令: systemd - 选择4.1 systemd (systemctl) 。 init - 选择4.2 System V Init (service)。 4.1 systemed(systemctl): # 启动MongoDB: sudo systemctl start mongod # 并将其加入开机启动项: sudo systemctl enable mongod # 用以下命令验证MongoDB是否启动运行成功: sudo systemctl status mongod # 停止MongoDB: sudo systemctl stop mongod # 重新启动MongoDB: sudo systemctl restart mongod 若启动时,出现错误:“Failed to start mongod.service: Unit mongod.service not found”,则运行以下命令: sudo systemctl daemon-reload 然后再次运行start命令即可: sudo systemctl start mongod 4.2 System V Init(service): # 启动MongoDB: sudo service mongod start # 用以下命令验证MongoDB是否启动运行成功: sudo service mongod status # 停止MongoDB: sudo service mongod stop # 重新启动MongoDB: sudo service mongod restart 验证MongoDB启动成功是这样的: MongoDB启动之后默认运行在27017端口。其配置文件在“/etc/mongod.conf”,运行端口等信息可在配置文件中修改。 5.管理MongoDB数据库 使用Robo 3T来管理MongoDB数据库,Robo 3T下载地址:Robomongo 开启远程连接之前,我们先要建立一个管理员用户,因为MongoDB默认是没有用户的。在控制台输入命令连接数据库: mongo # 如果更改了默认连接端口,则在连接时还需要指定连接端口 mongo -port 端口号 连接到数据库之后使用以下语句来建立一个管理员用户: # 选择连接admin数据库 use admin # 创建一个用户名为“root”,密码为“1234”管理员用户: db.createUser( { user:"root", pwd:"1234", roles:[{role:"root",db:"admin"}] } ) 创建成功的话会有“successfully”字样提示。使用“db.getUsers()”命令可以查询当前所有用户。 默认情况下,MongoDB是不允许远程连接的,所以需要在/etc/mongod.conf配置文件中进行一些配置。编辑配置文件: sudo nano /etc/mongod.conf 这是官网中对于配置文件mongod.conf每一个选项的详细介绍:Configuration File Options — MongoDB Manual。 配置文件中有一项是”net“,下面的”bindIp“一项的值原来是127.0.0.1,表示只能由本机访问MongoDB数据库,为了能远程访问管理数据库,需要将这项的值修改为0.0.0.0 net: port: 27017 - bindIp: 127.0.0.1 + bindIp: 0.0.0.0 同时,此时的数据库任何人使用任何网络都能连接,极度不安全。因此我们需要开启安全授权,同样的,在配置文件/etc/mongod.conf中添加如下内容: security: authorization: "enabled" 修改完之后保存退出,然后重启mongod服务: sudo systemctl restart mongod 然后我们就可以用这个用户登录管理数据库了。 更多MongoDB数据库用户的操作请参考:MongoDB添加用户 - MongoDB教程™ (yiibai.com) 打开Robo 3T客户端,新建一个Connection。输入服务器的ip地址或域名,端口填写默认的27017(或者修改之后的端口)。然后切换Authentication选项卡,在第一行前打上勾,输入框中输入用户名密码,填写完之后点击下面Test按钮,若是测试连接无误,点击Save保存下来,就能连接到数据库了。 附:在更改MongoDB连接端口时遇到的坑 MongoDB端口可以在配置文件/etc/mongod.conf进行更改,更改net选项下port的值即可。更改完需要重启MongoDB服务,下次用软件连接数据库时就要更换成更改后的端口。但是用mongo命令在控制台上登录数据库时,就会报错: 这是因为在用mongo命令是依然默认连接的是27017端口,而不是修改之后的端口,因此使用此命令时需要指定端口进行连接: mongo -port 新端口 6.卸载MongoDB 首先停止mongod进程: # systemed(systemctl): sudo systemctl stop mongod # System V Init(service): sudo service mongod stop 删除以前安装的任何 MongoDB 包: sudo apt-get purge mongodb-org* 删除 MongoDB 数据库和日志文件: sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongodb
2021年06月11日
1,999 阅读
0 评论
0 点赞
2021-06-06
云服务器搭建网易云解锁服务
目录: 前言 1.安装node.js和npm 2.启动服务 3.设置服务开机启动 4.设置网易云音乐代理 4.1 Windows端 4.2 Linux端 (1) 设置反向代理 (2) 添加证书 (3) 修改host文件 (4) 添加默认启动参数 环境说明: 服务器:ubuntu 20.04 客户端:Win10 / DeepinV20 社区版 网易云音乐版本:V2.8.1(Win10) / V1.2.1(Deepin) 前言 openwrt上面有一款插件叫“网易云音乐解锁”,可以解锁网易云的所有会员歌曲和没有版权的歌曲,可是要使用这项服务就必须连接到openwrt路由器,如果在外面的话就不行了,所以还是有一定的局限性。 最近在github上发现一个项目,可以利用云服务器来搭建一个网易云解锁服务。项目地址:GitHub - nondanee/UnblockNeteaseMusic: Revive unavailable songs for Netease Cloud Music。 还有另外一个项目:GitHub - meng-chuan/Unlock-netease-cloud-music: 解锁网易云音乐客户端变灰歌曲,这个项目整合了目前各个平台解锁网易云的相关方法,核心就是上面的那个项目。作者写了一个详细的教程,也包括本地搭建和服务器(Linux/Windows)端搭建的教程。服务器环境是直接使用宝塔面板,并不是手动搭建。目前我的服务器并没有使用宝塔面板,不得不手动搭建环境。所以就有了这一篇博客。 下面就是在云服务器上搭建环境并运行项目的整个过程: 1.安装node.js和npm ubuntu中用一句命令就可以安装node.js和npm: sudo apt update sudo apt install nodejs npm 安装完成后,输入以下命令可以查看node.js版本: nodejs --version 2.启动服务 从github上把项目文件拉取下来,然后上传到服务器上的任意一个位置。 git clone https://github.com/nondanee/UnblockNeteaseMusic.git 完成后,进入到服务器上该项目的文件夹里,运行如下命令启动服务: node app.js -p 10000 -f 59.111.181.60 “-p”命令表示设置服务端口,这里选择10000端口。同时,需要在服务器的安全组中放行这个端口。“-f”命令表示强制使用网易服务器ip。 3.设置服务开机启动 此时,如果退出了ssh连接窗口,那么这个服务将会停止,所以我们还需要把这项服务添加到开机启动项目中,使其开机就能启动并在后台运行。 在/etc/init.d目录下新建一个脚本文件: sudo nano /etc/init.d/uncm.sh 输入以下内容,并根据注释更改相关内容: #!/bin/bash ### BEGIN INIT INFO # Provides: unlockmusic # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: start unlockmusic # Description: start unlockmusic ### END INIT INFO # 下面这一部分是命令内容,以exit 0结束 # /root/Unlock-netease-cloud-music换成自己的目录 cd /root/Unlock-netease-cloud-music node app.js -p 10000 exit 0 修改完之后ctrl +o保存,ctrl +x退出。执行以下语句给脚本文件足够的执行权限: sudo chmod 755 uncm.sh 最后再将脚本添加到开机启动: sudo update-rc.d uncm.sh defaults 90 # 90表示执行的优先级,数字越大表示越晚执行。 附:移除脚本命令: sudo update-rc.d -f [脚本文件名] remove 做完这些之后,重启一遍服务器,使服务开机运行起来,然后我们就可以放手不用管了。至此,一个安全稳定的网易云解锁服务就搭建好了。只要服务器不挂,解锁服务就能生效。 4.设置网易云音乐代理 4.1 Windows端 注意:请保证网易云音乐的版本不高于 2.9.5,经测试,此代理方式在 2.9.5 以上的版本已经无法使用,原因未知。 网易云音乐 2.9.5 下载地址(安装完成之后务必关闭自动更新):https://image.wlplove.com/download/cloudmusicsetup2.9.5.199424.exe 打开 win10 的网易云音乐,进入“设置”->“工具”选项,选择“自定义代理”,“服务器”填写域名或者ip地址,“端口”填前面启动项目时设置的端口号即可。 然后点击测试按钮,如果配置无误,那么就会提示“该代理可以使用” 点击确定,重启网易云音乐。 4.2 Linux端 此项是解锁Linux端网易云音乐的无版权歌曲,Windows用户直接忽略即可。 还有,请注意此项所述的“Linux”是指客户端,前面的”Linux“是指服务器端。 此处以Deepin系统为例,方法整理自:Linux 客户端食用指南 · Issue #208 · nondanee/UnblockNeteaseMusic (github.com)。 (1) 设置反向代理 Linux端的网易云音乐客户端没有设置代理的选项,也不能指定服务端口,因此这个服务必须要运行在服务器端的80/443端口,但这两个端口一般都是被占用的(因为服务器要提供网站服务),所以还要做反向代理。当然,如果端口没有被占用,就可以跳过设置反向代理这一步了。 添加一个Nginx配置: server { listen 80; listen 443 ssl; server_name music.163.com interface.music.163.com; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'AES128+EECDH:AES128+EDH'; ssl_prefer_server_ciphers on; location / { proxy_pass https://127.0.0.1:52000; proxy_set_header HOST 'music.163.com'; } } 然后重新载入Nginx配置文件: nginx -s reload (2) 添加证书 项目目录中默认带有证书文件“ca.crt”。或者也可以选择自己签发证书:进阶配置 · Issue #48 · nondanee/UnblockNeteaseMusic (github.com)。 切换到项目目录,将证书文件复制到/usr/local/share/ca-certificates/目录下: sudo cp ca.crt /usr/local/share/ca-certificates/ 然后刷新: sudo update-ca-certificates 如果要删除已经信任的证书,先将/usr/local/share/ca-certificates/下拷贝的.crt证书文件删除, 然后执行以下命令,刷新配置文件,删除软链接: sudo update-ca-certificates -f (3) 修改host文件 host文件位置为/etc/hosts。向host文件末尾添加如下内容: # host文件格式为“ip地址 网址”,中间有空格 [服务器ip] music.163.com [服务器ip] interface.music.163.com (4) 添加默认启动参数 修改网易云的启动项,位于/usr/share/applications,直接编辑: sudo nano /usr/share/applications/netease-cloud-music.desktop 在“Exec”这一行末尾增加--ignore-certificate-errors 即可。 此时,Linux端的网易云音乐也可以听变灰的歌曲了。
2021年06月06日
5,128 阅读
0 评论
0 点赞
2021-04-01
【踩坑实录】Ubuntu系统解压后的文件出现权限问题,无法查看编辑
环境说明: ubuntu 20.04 + kubuntu桌面 问题如图: 源自我在配置Tomcat时,从官网上下载的Tomcat8.5压缩包,在KDE桌面环境下解压之后的文件图标上会显示小锁,系统提示文件无法编辑、无法查看 问题原因 下载的文件默认权限是比较低的,系统无法进行相关的操作,只需要更改权限即可 解决办法: 修改权限即可,在终端上输入: # 修改tomcat-8.5文件夹的权限为755: sudo chmod 755 -R tomcat-8.5 修改后即可进行文件操作了。
2021年04月01日
1,729 阅读
0 评论
0 点赞
1
2
3
...
5