新建一个php文件,填入:
<php
phpinfo();
看有没有curl模块(一般为黑色粗体显示)
方法二:
命令行模式,输入php -m 看看有没有curl下载单个文件,默认将输出打印到标准输出中(STDOUT)中
curl >1在每次更新的时候记录一个版本标签或者时间值,记录在客户端
2在服务器上记录每次版本更新修改的文件,,资源等等
3在客户服务器每次访问或打开的时候请求到你的更新文件服务器,比较版本或时间,
如果版本不同则查看版本的跨度,得到服务器上版本需要更新的文件,然后更新这些文件这个做法很多
1 触发式采集:在主页的模板中使用js调用php文件。php文件里面做采集时间判断,时间间隔达到后就自动采集。这种做法不需要服务器配合,但前提是网站必须有流量,蜘蛛不行。
2 windows上计划任务定时运行php自动采集页面即可。
3 linux上使用crontab+curl定时运行php自动采集页面即可。今天细说一下elasticsearch的update更新功能,以及如何利用script脚本更新数据。
想要使用script脚本功能,需要在配置文件elasticsearchyml里设置
Python
scriptdisable_dynamic: false
关于elasticsearch script的文章,总是会没完没了的修改
ES支持更新,但是更新的方式是通过一个提供的脚本进行的。ES的做法是,通过
index找到相应的存放记录的节点,然后执行脚本,执行完之后,返回新的索引。实际上执行的是一个get和reindex的过程,在这个过程中,通过
versioning来控制没有其它的更新 *** 作(这个功能是019后可用的)。具体实现的原理应该和elasticsearch
Versioning相关。
get,reindex的含义是,ES先取出这条记录,然后根据新数据生成新记录,然后在把新记录放回到ES中(并不会覆盖老的记录)。
现在没有数据,首先我们需要创建一条记录
Python
$ curl -XPUT localhost:9200/xiaoruicc/blog/1 -d '{
"counter" : 1,
"tags" : ["red"]
}'
$ curl -XPUT localhost:9200/xiaoruicc/blog/1 -d '{
"counter" : 1,
"tags" : ["red"]
}'
直接修改数据,一定要注意,直接update的化,会覆盖以前的数据,另外update的时候,需要/index/type/id ,一定要带着id。 elasticsearch 应该不支持搜索query方式update修改数据。
Python
curl -XPUT 'localhost:9200/xiaoruicc/blog/1pretty' -d '
{
"name": "xiaoruicc"
}'
curl -XPUT 'localhost:9200/xiaoruicc/blog/1pretty' -d '
{
"name": "xiaoruicc"
}'
elasticsearch提供了doc这个局部更新参数,他可以局部修改,而不会直接覆盖以前的数据,这会针对特定的k v,字段修改。
Python
curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_updatepretty' -d '
{
"doc": { "name": "ruifengyun" }
}'
curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_updatepretty' -d '
{
"doc": { "name": "ruifengyun" }
}'
当Elasticsearch API不能满足要求时,Elasticsearch允许你使用脚本实现自己的逻辑。脚本支持非常多的API,例如搜索、排序、聚合和文档更新。脚本可以通过请求的一部分、检索特殊的scripts索引或者从磁盘加载方式执行。
下面是es script的用法,这些脚本是groovy开发的。 下面的语句的意思是说,将counter的值加4
Python
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcecounter += count",
"params" : {
"count" : 4
}
}'
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcecounter += count",
"params" : {
"count" : 4
}
}'
通过上面的例子,我们知道tags是个列表,如果用doc局部更新的语法,他是无法做到append的,还是会覆盖tags这个字段。 那么怎么实现列表扩展? 请使用elasticsearch script实现。
Python
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcetags += tag",
"params" : {
"tag" : "white"
}
}'
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcetags += tag",
"params" : {
"tag" : "white"
}
}'
_update也支持upsert功能,没有这个字段或者key,也会添加这个记录。下面是一个例子,如果没有counter字段,则插入该字段:
Python
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcecounter += count",
"params" : {
"count" : 4
},
"upsert" : {
"counter" : 1
}
}'
$ curl -XPOST 'localhost:9200/xiaoruicc/blog/1/_update' -d '{
"script" : "ctx_sourcecounter += count",
"params" : {
"count" : 4
},
"upsert" : {
"counter" : 1
}
}'
下面我们来复杂点的groovy script脚本用法 当你的source没有china这个key,那么我会增加一个kv
Python
curl -XPOST "" -d'
{
"script": "if (!ctx_sourcecontainsKey(\"china\")) { ctx_sourceattending = newField }",
"params" : {"newField" : "blue" },
"myfield": "data"
}'
curl -XPOST "" -d'
{
"script": "if (!ctx_sourcecontainsKey(\"china\")) { ctx_sourceattending = newField }",
"params" : {"newField" : "blue" },
"myfield": "data"
}'
下面的script语法相对复杂的,会遍历一组字典,然后进行判断赋值。
{
“55555″: 22,
“name”: “lisi”,
“distr_pan”: [
{
“k”: 15,
“v”: 15
},
{
“k”: 20,
“v”: 20
}
]
}
Python
$ curl -XPUT 'localhost:9200/xiaoruicc/blog/9123/_update' -d '
{
"script" : "def x = false;ctx_sourcedistr_paneach({if(itget('k')==target){x=true}});if(x){ctx_sourcedistr_pan +=v}",
"params":{
"v":{"k":nlp, "v":35},
"target":15
}
}
$ curl -XPUT 'localhost:9200/xiaoruicc/blog/9123/_update' -d '
{
"script" : "def x = false;ctx_sourcedistr_paneach({if(itget('k')==target){x=true}});if(x){ctx_sourcedistr_pan +=v}",
"params":{
"v":{"k":nlp, "v":35},
"target":15
}
}
elasticsearch script就讲解到这里了,很多例子已经简单明了…
script貌似不是很安全,最少远程代码执行的漏洞暴露过几次了 下次把python版的script走一遍试试
貌似对于我们你者来说,不管是groovy python,没什么太大却别,语法看起来都一个模子。v2ray官网怎么下载 *** 作方法:在获取和启用服务器后,接下来就要在服务器上安装V2Ray的程序使服务器能够与V2Ray客户端连接和运行使用。服务器上V2Ray程序的安装将在你本地的电脑上通过命令行界面连接服务器并进行一系列 *** 作完成。你最好对Linux系统有基本的了解,Linux是运行V2Ray的服务器所使用的系统,但如果你不了解Linux系统也没太大问题,只要认真按照下面的步骤一步步 *** 作就能完成V2Ray服务器的搭建。如果你实在不能完成,建议还是改用***,比如Surfshark和Nord***,用起来简单快捷,不需要用户自己搭建服务器,而且可以随时切换不同国家的服务器连接,只是要用PayPal或xyk购买,有兴趣的可以考虑注册使用PayPal。
以下是在服务器上安装V2Ray的详细步骤。
首先用SSH连接到你创建的服务器,SSH的使用方法根据你电脑的 *** 作系统有所不同,下面将分别来讲Mac系统和Windows系统的SSH连接方法。
如果你用的是苹果Mac系统,可以直接打开系统内置的Terminal指令界面建立SSH会话,不需要安装额外程序。
打开Terminal后,输入以下指令连接到服务器。注意把“your_server_ip”替换成你创建的服务器的IP,这个IP可以在你服务器的控制面板中找到。
ssh root@your_server_ip
如果你用的是Windows系统,你需要安装额外的程序,因为Windows没有内置的用于建立SSH会话的程序,你需要安装一款名为PuTTY的软件,可以从它的网站上下载这个软件。PuTTY的用法非常简单,打开软件后找到相应位置输入服务器IP地址和端口号(Port,默认是22,Vultr和DigitalOcean用户保持默认不必更改,搬瓦工用户需要改成控制面板里显示的端口号)再点下面的连接按钮(Start按钮)就可使用。注意第一次连接一个新的服务器时会跳出来一个对话框,需要点击Accept才能连接。另外要注意的是,如果连接后出现的命令行窗口没有显示任何文字,就是没连接成功,很可能是服务器IP被屏蔽造成的,这时就需要更改服务器IP来解决(Vultr、DigitalOcean用户重新创建一个服务器,搬瓦工用户去控制面板更改IP)。
无论用的是上面哪种方法连接服务器,连接后需要以root身份登录服务器,命令行界面会显示login as,在后面输入root回车即可。然后指令界面会询问你的密码或SSH密钥passphrase,输入并回车后就可以登录了。注意输入密码时命令行界面里不会显示你输入的字符,不用担心,输入完成后按回车即可。
成功登录后,光标会出现在下面一行的末尾 (注意“@”后面是你服务器的主机名称,一般VPS的系统会自动生成一个名称,你也可以到VPS的控制面板中设置一个新的名称,但这个名称对以下的 *** 作并不重要)。
“root@the-hostname-of-your-server:~#”
然后你就可以开始在后面输入指令安装V2Ray了。
在安装V2Ray之前,要先更新服务器,并下载curl语言,用于安装V2Ray。使用以下的命令行来完成。(不必一个一个词输入,可以直接把下面的内容复制然后粘贴到指令行界面中去。粘贴的方法是点击鼠标右键,然后复制的内容就会立刻粘贴上去)
apt-get update -y && apt-get install curl -y
上面这个命令行适用于Ubuntu系统和Debian系统,但CentOS系统(搬瓦工服务器默认系统)用户只需把命令中的每个“apt-get”改成“yum”即可,如下所示。
yum update -y && yum install curl -y
把命令行输入后,需要按回车键执行该指令。更新服务器和安装curl需要约十几秒到一分钟时间。
然后安装V2Ray,V2Ray的安装相比影梭简单很多,使用V2Ray开发者建议使用的一键安装脚本可以仅用一行命令行就能完成程序的安装。
方法是在命令行界面输入以下命令并按回车:
bash <(curl -L -s >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)