在服务器上放一个js脚本,每天定时执行一次。
之前想过要写一个html,把js的脚本直接写进去,但是发现linux服务器并不能以打开网页的当时执行脚本(查了一些资料,发现一般都是在服务器上部署静态页面,还是需要我手动去访问,不能自动执行)。
后来发现可以使用node执行纯js脚本,不需要写在html里边,这样一来,只要在服务器上设定好每天自动执行node指令就可以了。
实操:
安装node,配置环境。
进入node官网, https://nodejs.org/en/download/选择最新版本的,右键-复制链接地址
https://nodejs.org/dist/v14.15.1/node-v14.15.1-linux-x64.tar.xz 在命令行中,进入到想要安装node的文件夹(自己新建一个)
解压文件的 bin 目录底下包含了 node、npm 等命令,使用 ln 命令来设置软连接:
也可直接设置环境变量:在 etc/profile 最下边加上
这样,在任何路径下,都可以直接使用node指令
脚本
js脚本原本是在写在html里边的,如果想用node执行,需要有所修改。
首先,由于脚本中需要使用jquery中的$,需要引入jsdom,jquery
之后,编辑脚本
此外,由于想要脚本自动执行,通过console.log()打印的控制台显然不太合理,因此考虑将脚本执行的信息打印到日志文件中,方法很简单
在脚本最开始加上:
服务器定时
编辑crontab,可以编辑定时任务
具体crontab的格式,自行查找即可。
注:
编辑crontab时,一般的直觉是直接使用 node+脚本 就行,但是因为crontab有自己的环境,与前边配置的系统环境变量不同,所以如果想要在crontab中直接使用node指令,需要在/etc/crontab中加入node的安装路径。
但是我在实际操作时,在/etc/crontab加入了node路径,但是却执行不了,所以简单粗暴直接写的是node路径。出现这个问题可能是哪里写的不对,大家可以试试修改/etc/crontab的方式。
到此,服务器已经可以定时执行js脚本了,可以在对应的输出日志文件中查看执行结果。
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/5378.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
休息一下~~