IDEA 服务器搭建 IDEA授权服务器

本文对原作者文章进行更详细讲解
1.下载软件:磁力链接: magnet:?xt=urn:btih:2289E4F8CEB346AC44E54C8C0DA706CC537301AA

复制磁力链接地址
magnet:?xt=urn:btih:2289E4F8CEB346AC44E54C8C0DA706CC537301AA
复制到迅雷下载

2.找到自己操作系统的版本,我这里使用IntelliJIDEALicenseServer_windows_amd64.exe,双击打开运行

查看自己本地系统版本或者服务器版本
默认*个就可以

3.在idea注册界面选择授权服务器,填写http://127.0.0.1:1017,然后点击“OK”,

软件默认端口为 1017 ,为原作者女朋友生日
如果自己端口占用符合修改成自定义
通过命令行启动 程序名称 -p 端口号

更多命令
-p参数 用于指定监听的端口 当未设置-u参数,且计算机用户名为^[a-zA-Z0-9]+$时,使用计算机用户名作为idea用户名。

-u参数,用于指定用户名

-prolongationPeriod参数,具体干嘛的我也不知道

-l参数,用于指定绑定监听到哪个IP。

当用户使用浏览器直接打开授权服务器时,若在程序工作目录中存在IntelliJIDEALicenseServer.html文件,则返回IntelliJIDEALicenseServer.html中的内容到用户浏览器.

Seq2Seq的 tensorflow-1.14 实现

Seq2Seq的 tensorflow-1.14 实现

原理自己找,这里就是用示例简单实现 S2S 的原理,主要用来进行单词的翻译。

import tensorflow as tf
import numpy as np

tf.reset_default_graph()

# 构建字符字典、字符和索引之间的映射关系
chars = [c for c in ‘SEPabcdefghijklmnopqrstuvwxyz’]
char2idx = {v:k for k,v in enumerate(chars)}
idx2char = {k:v for k,v in enumerate(chars)}

datas = [[‘man’, ‘women’], [‘black’, ‘white’], [‘king’, ‘queen’], [‘girl’, ‘boy’], [‘up’, ‘down’], [‘high’, ‘low’]]

step = 5 # 这里把输入的*大字符长度作为 step
hidden = 256
dim = 32
V = len(chars)

def make_batch(datas):
input_batch, output_batch, target_batch = [], [], []
for data in datas:
for i in range(2):
data[i] = data[i] + ‘P’ * (step – len(data[i])) # 将 datas 中的每个单词都用 P 补齐成 step 长度

input = [char2idx[c] for c in data[0]]
output = [char2idx[c] for c in ‘S’+data[1]] # decoder 的输入需要开始符号
target = [char2idx[c] for c in data[1]+’E’] # decoder 的输出需要结束符号

input_batch.append(input)
output_batch.append(output)
target_batch.append(target)
return input_batch, output_batch, target_batch
make_batch(datas)

#初始化词向量
embedding = tf.get_variable(name=”embedding”, shape=[V, dim], initializer=tf.random_normal_initializer())

# encoder 的输入进行词嵌入
enc_input = tf.placeholder(tf.int32, [None, None])
enc_input_embedding = tf.nn.embedding_lookup(embedding, enc_input) # [batch_size, step, dim]

# decoder 的输入进行词嵌入
dec_input = tf.placeholder(tf.int32, [None, None])
dec_input_embedding = tf.nn.embedding_lookup(embedding, dec_input) # [batch_size, step+1, dim]

# decoder 的目标输出
targets = tf.placeholder(tf.int64, [None, None]) # [batch_size, step+1]

# encoder 过程
with tf.variable_scope(‘encode’):
enc_cell = tf.nn.rnn_cell.BasicRNNCell(hidden)
enc_cell = tf.nn.rnn_cell.DropoutWrapper(enc_cell, output_keep_prob=0.5) # 进行 dropout
_, enc_states = tf.nn.dynamic_rnn(enc_cell, enc_input_embedding, dtype=tf.float32) # enc_states : [batch_size, hidden]

# decoder 过程
with tf.variable_scope(‘decode’):
dec_cell = tf.nn.rnn_cell.BasicRNNCell(hidden)
dec_cell = tf.nn.rnn_cell.DropoutWrapper(dec_cell, output_keep_prob=0.5) # 进行 dropout
outputs, _ = tf.nn.dynamic_rnn(dec_cell, dec_input_embedding, initial_state=enc_states, dtype=tf.float32) # outputs : [batch_size, step+1, hidden]

# 全连接层输出每个样本的每个步骤的结果概率矩阵
logits = tf.layers.dense(outputs, V, activation=None) # logits : [batch_size, step+1, V]
# 计算损失并优化
cost = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=targets))
optimizer = tf.train.AdamOptimizer(0.001).minimize(cost)
# 预测
prediction = tf.argmax(logits, 2)

# 初始化 tf
sess = tf.Session()
sess.run(tf.global_variables_initializer())
# 生产数据
input_batch, output_batch, target_batch = make_batch(datas)
# 训练模型
for epoch in range(10000):
_, loss = sess.run([optimizer, cost], feed_dict={enc_input:input_batch, dec_input:output_batch, targets:target_batch})
if (epoch+1)%1000 == 0:
print(‘epoch: ‘,’%04d’%(epoch+1),’ loss:’,’%6f’%(loss))

# 翻译
def translate(word):
tmp = [word, ‘P’*len(word)]
input_batch, output_batch, _ = make_batch([tmp])
result = sess.run(prediction, feed_dict={enc_input:input_batch, dec_input:output_batch})
decoded = [idx2char[i] for i in result[0]]
end = decoded.index(‘E’)
translated = ”.join(decoded[:end])
return translated.replace(‘P’,”)

# 翻译示例
print(‘man ->’, translate(‘man’))
print(‘mans ->’, translate(‘mans’))
print(‘king ->’, translate(‘king’))
print(‘black ->’, translate(‘black’))
print(‘upp ->’, translate(‘upp’))

结果打印:

epoch: 1000 loss: 0.000290
epoch: 2000 loss: 0.000112
epoch: 3000 loss: 0.000049
epoch: 4000 loss: 0.000015
epoch: 5000 loss: 0.000014
epoch: 6000 loss: 0.000003
epoch: 7000 loss: 0.000002
epoch: 8000 loss: 0.000001
epoch: 9000 loss: 0.000001
epoch: 10000 loss: 0.000000
man -> women
mans -> women
king -> queen
black -> white
upp -> down

维持群聊炽焰

QQ自动发送消息——维持群聊炽焰

作者的初衷很简单:因为有一天维持很久的群聊炽焰突然没了……于是就下定决心整个能自动发送消息的脚本程序

实现思路目前有三种:

手机端(Qnotified&其他支持java脚本的模块)
Linux端(cq机器人)
windows端(python脚本)
Qnotified&其他框架实现思路
通过直接调用Qn提供的api接口发送消息

丑话先说到前头

这种方法的缺点:

开启脚本后无法进入QQ(解决办法:必须清除QQ和Qn的应用数据。至少在我测试的时候出现了这种情况,并且我采用的方法对我来说有效,框架不同,版本不同,模块不同,环境不同等都可能影响)
因此在意聊天记录等数据慎用,并且清除数据后Qn将恢复默认设置

代码

//InfoStart
//@author: Xiang
//@name: 自动发送群聊消息,维持群聊炽焰
//@version: 0.2
//@label: beta
//@decs: 如题
//InfoEnd

import cc.ioctl.script.QNClient;
import java.util.concurrent.TimeUnit;
import java.text.SimpleDateFormat;
import java.util.Date;

public void onLoad(){
while(true){
SimpleDateFormat sdf = new SimpleDateFormat();
sdf.applyPattern(“yyyy-MM-dd HH:mm:ss a”);
Date date = new Date();// 获取当前时间
QNClient.send(“752099815”,”Qnotified 定时发送消息,维持群聊炽焰”+sdf.format(date),1); //752099815是群号,修改成你想要发送消息的群号
TimeUnit.SECONDS.sleep( 60 ); //等待60秒,即1分钟
}

}

复制保存导入Qn即可

Linux cq机器人
顾名思义,在Linux上安装cq机器人实现自动发送消息

丑话再次说到前头
需要电脑并且需要长时间开机,若没有的话可以使用vps,挂机宝(大概5块钱)或阿里云腾讯云之类的免费学生服务器

推荐一个我自己也在用的挂机宝平台
3.5元一个月

我采用的是go-cqhttp

GitHub项目地址

realease下载地址

按系统需求下载

我部署在树莓派上

wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-beta2/go-cqhttp_1.0.0-beta2_linux_arm64.deb

下载完毕后sudo dpkg -i go-cqhttp_1.0.0-beta2_linux_arm64.deb

安装完毕后直接go-cqhttp

*次用会报错缺少配置文件,等它自动生成完毕后按ctrl+c
再去编辑config.yml

vim config.yml

填写你的QQ账号和密码

按i进入编辑模式

编辑完毕先按esc 再输入英文冒号 再输入wq即可保存并退出

此时再使用go-cqhttp
若需要登录验证按提示操作即可

cq api官方文档

我写了个python脚本

import requests,time,os,datetime

while True:
now=str(datetime.datetime.now())
print(now)
os.system(“curl ‘127.0.0.1:5700/send_group_msg?&group_id=428686902&message=go-cqhttp\u5b9a\u65f6\u53d1\u9001\u6d88\u606f\uff08\u7ef4\u6301\u7fa4\u804a\u70bd\u7130)'”)
time.sleep(3600)

每1小时发送一次消息

PS:若使用ssh启动go-cqhttp,请记得使用screen或nohup命令避免关闭ssh后程序被杀

windows python脚本
这个稍微有些复杂

同样需要电脑长时间开机,挂机宝网址(不是很推荐买windows挂机宝,因为性能过于羸弱体验很糟糕)

#依赖于pywin32库,请记得pip install pywin32

import time
import win32clipboard as w
import win32gui,win32con

def setText(aString):
”’将要发送的文字复制”’
w.OpenClipboard()
w.EmptyClipboard()
w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
w.CloseClipboard()

def send_Mess(hwnd):
”’粘贴并回车发送”’
win32gui.PostMessage(hwnd,win32con.WM_PASTE, 0, 0)
time.sleep(0.3)
win32gui.PostMessage(hwnd,win32con.WM_KEYDOWN,win32con.VK_RETURN,0)
win32gui.PostMessage(hwnd,win32con.WM_KEYUP,win32con.VK_RETURN,0)

windowtitle = ‘巷子的神秘测试群’ #窗口标题,修改成你QQ群聊的名字(注意!!!打开多个聊天窗口时标题会变成xx等x个会话)
hwnd = win32gui.FindWindow(None, windowtitle) #按窗口标题寻找窗口句柄
while True:
if hwnd>0:
print(‘找到%s’%windowtitle)
now= time.strftime(‘%Y-%m-%d %H:%M:%S’,time.localtime(time.time())) #此条信息发送的时间
setText(‘Python定时发送信息,维持群聊炽焰 :’+now)
send_Mess(hwnd)
time.sleep(10) #等待600秒,即10分钟
else:
print(‘没找到%s’%windowtitle)

”’
hwnd_title = dict()
def get_all_hwnd(hwnd,mouse):
if win32gui.IsWindow(hwnd) and win32gui.IsWindowEnabled(hwnd) and win32gui.IsWindowVisible(hwnd):
hwnd_title.update({hwnd:win32gui.GetWindowText(hwnd)})
win32gui.EnumWindows(get_all_hwnd, 0)

for h,t in hwnd_title.items():
if t is not “”:
print(h, t)
”’
#如果你仍然没有成功获得窗口句柄,可以使用此段代码打印出当前所有窗口标题名与句柄

windows下安装awscli

awscli是运行aws所需的客户端命令行工具,在windows下安装可以通过msi的方式安装,但是一般很难下载这种文件,另一种方式是通过python提供的pip命令安装,这里介绍通过pip命令安装:

1、注册一个amazon账户,并得到账户ID,记住密码。在配置aws时需要用到。

2、需要安装python环境,并且安装了pip工具。安装awscli只需要一个命令:pip install awscli。

3、安装完成之后,运行aws命令可能会有问题。如果运行aws命令,每次都会打印”没有为扩展名.py找到关联文件”可以参考这篇文章解决。

4、正确安装之后,可以运行如下命令,查看安装版本。

C:\Users\Administrator>aws –version
aws-cli/1.14.10 Python/3.5.1 Windows/7 botocore/1.8.14
5、如果运行aws其他命令,比如连接amazon提供的dynamodb数据库,那么可能会遇到以下错误:

You must specify a region. You can also configure your region by running “aws configure”.
这就是*步里面为什么需要注册一个amazon账户,我们通过注册的账户信息,来完成aws configure。

在命令行下运行:aws configure

C:\Users\Administrator>aws configure
AWS Access Key ID [****************7059]:
AWS Secret Access Key [****************2012]:
Default region name [us-east-1]:
Default output format [json]:
这里key id:就是我们的账户id,

secret access key:就是账户密码。

region name:就是我们注册时所在的区域。如果是运行dynamodb本地数据库,可以随便填写。

aws命令运行正常的截图:
%title插图%num

苹果cms采集提示错误后的解决方法

1,新安装的苹果CMS在采集时会遇到采集报错的情况,如下图所示!

%title插图%num

一般报错基本是语言(vod_lang)和地域(vod_area)两个字段采集的数据超过了数据表字段的类型长度限制

2,解决方法:根据保存提示选择执行下面给出的2种对应SQL语句执行。SQL分别在下图所示地方单独执行
alter table {pre}vod modify column vod_lang varchar(255)

alter table {pre}vod modify column vod_area varchar(255)

%title插图%num

python工作目录和脚本存放目录不一样

 

 

%title插图%num
1、os.getcwd()
脚本文件所在位置D:\Code\python\TouTiao\OS\Path\Dirname.py,文件内容如下:

working_dir = os.getcwd() # 当前工作文件所在的路径
print(working_dir)
# D:\Code\python\NLP\Naive Bayes

print(os.path.dirname(os.getcwd())) # D:\Code\python\NLP
print(os.path.abspath(os.getcwd())) # D:\Code\python\NLP\Naive Bayes
path1 = os.path.abspath(os.path.dirname(os.getcwd()))
print(‘path1: ‘, path1) # path1: D:\Code\python\NLP

调用后,输出的是# path1: D:\Code\python\NLP,结果并不是想要的当前文件路径。为什么会这样?去看getcwd源码,其返回得到当前工作路径(working directory)

2、那这个working directory到底是什么?
当前工作路径 working directory 就是脚本运行/调用/执行的地方,而不是脚本本身的地方,也就是说「当前文件路径」跟「当前工作路径」没关系,即os.getcwd() 返回值跟你的 Python文件路径没关系,如果要获得「文件路径」你得使用 __file__。比如,我想要的是当前文件的*对路径,那就需要这俩哥出场了:

# os.path.abspath(__file__)返回的是.py文件的*对路径(完整路径+文件名)
# os.path.dirname(__file__)返回的是.py文件的目录
# 注意,路径与目录不一样,路径有目录还有文件,而目录没有文件

# os.path.abspath(__file__):Return the absolute version of a path. 获取当前文件的*对路径
print(os.path.abspath(__file__))
# D:\Code\python\TouTiao\OS\Path\Dirname.py

# os.path.dirname(__file__):Returns the directory component of a pathname 获取当前文件所属的文件夹
print(os.path.dirname(__file__))
# D:/Code/python/TouTiao/OS/Path

搭配使用,返回当前文件所在文件夹的目录(这两个结果是一样的):

path1 = os.path.dirname(os.path.abspath(__file__))
print(path1)
# D:\Code\python\TouTiao\OS\Path

path2 = os.path.abspath(os.path.dirname(__file__))
print(path2)
# D:\Code\python\TouTiao\OS\Path

3、总结
「当前文件路径」用 os.path.abspath(os.path.dirname(__file__))

「当前工作路径」用 os.path.abspath(os.path.dirname(os.getcwd())) 或 os.path.abspath(os.getcwd())

利用亚马逊AWS搭建个人服务器

注册账号

注册地址: https://portal.aws.amazon.com/billing/signup#/start

注册过程比较麻烦,需要用信用卡,中间的信息填写的内容也比较多,并且目前必须注册国际账号才能个人使用EC2,亚马逊的还专门打电话告知了我之后又发送了邮件告诉了我具体的注册方式。注册的密码必须是大小写字母加数字!

登陆

登陆地址: https://signin.aws.amazon.com/signin?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fconsole%2Fhome%3Fstate%3DhashArgs%2523%26isauthcode%3Dtrue&client_id=arn%3Aaws%3Aiam%3A%3A015428540659%3Auser%2Fhomepage&forceMobileApp=0

登陆时可使用账户别名或者账户ID,所以注册的信息记好,登陆时使用邮箱登陆或者用户名登陆即可。

创建实例

1、登陆之后,在控制面板页面左上角选择“服务”,可以查看亚马逊有哪些服务可以使用,因为我使用的是EC2,所以选择*个EC2就可以了。

2、选择EC2后,会跳转到EC2 Dashboard,左侧会显示和EC2相关的配置菜单,点击实例,可以查看当前创建好的实例,如果没有则是空。

3、点击“启动实例”按钮,会跳转到实例配置页面:

  • 步骤 1: 选择一个 Amazon 系统映像(AMI)

在这里可以选择实例的系统,如果是免费用户可以勾选“仅免费套餐”,然后选择实例系统,主要有Linux系统和Windows系统,包括Amazon Linux 2 AMI、SUSE Linux Enterprise Server 15、Red Hat Enterprise Linux 7.6、Ubuntu Server 18.04 LTS、Microsoft Windows Server 2016 Base等等,根据自己的喜好选择系统,系统也支持X86和ARM可供选择,点击选择可进入下一步。

  • 步骤 2: 选择一个实例类型

    在这里选择实例的配置,因为是免费账户,所以只能选择免费的实例,免费的套餐会有提示,配置是1个CPU,1G内存,点击下一步“配置实例详细信息”。

  • 步骤 3: 配置实例详细信息

    在这里可以配置创建时实例的一些信息,可以自己进行配置,也可以直接默认,点击下一步“添加新存储”。

  • 步骤 4: 添加存储

    该项中可以设置硬盘存储分区,默认只配置好了根目录,卷类型可以选择,也支持添加新卷,也可以选择默认。配置好之后点击下一步“添加标签”。

  • 步骤 5: 添加标签

    该项中可以默认或者自定义标签,标签由区分大小写的键值对组成。例如,您可以定义一个键为“Name”且值为“Webserver”的标签。可将标签副本应用于卷和/或实例。也可以不进行配置,直接进行下一步“配置安全组”。

  • 步骤 6: 配置安全组

    该项中,用于配置实例中安全组的信息,针对实例可以将实例加入已有的安全组或者是选择新建安全组, 安全组名称与描述可自定义,此处默认开启的是SSH类型,端口号是22,用于使用ssh方式登陆服务器。因为后面将要说到需要配置nginx,所以此处可以添加两个规则用于nginx访问:

    • 点击添加http规则:类型选择HTTP,端口范围是80,可以是TCP,来源可以改为“任意位置”,描述可以自定义填写。
    • 点击添加https规则:类型选择HTTPS,端口范围是443,可以是TCP,来源可以改为“任意位置”,描述可以自定义填写。

    点击下一步“审核和启动”。

  • 步骤 7: 核查实例启动

    该项中会显示之前几个步骤中配置的相关信息,确认无误后点击启动,会填出需要选择现有密钥对或着新密钥对,因为是新建的实例在这里是没有密钥对的,所以选择创建新密钥对,填写密钥对名称, 填写之后一定要下载密钥对,因为这个后面需要用到,并且这是没有下载的话后面就无法再获取到这个密钥对文件了,弹出框也会提示“创建文件后,您将无法再次下载该文件”。具体创建密钥对的其他方式后面再说。填写密钥对以后,点击“启动实例”按钮,会跳转到启动状态页面,点击右下角“查看实例”到EC2 dashboard查看创建的实例。

    至此,实例已经创建完毕,后面就是做相关的配置。

配置实例

1、在实例一栏中可以看见已经创建的实例,列表会显示实例ID、IPV4、实例状态、密钥名称等,也可以点击右上角小齿轮按钮,配置需要显示的列。

2、配置安全组

  1. 在创建实例的时候可能会忘记配置HTTP会其他相关的规则,则可以在这里重新进行配置
  2. 复制代码
  • 勾选要配置的安全组,在上面点击“操作”按钮,或者在要配置的安全组那一行右键都行,然后可以进行删除安全组、添加入站或者出站规则等,这里我们添加入站规则,即与上面的操作一样,如果不开启80或443端口的话,后面配置好nginx外部是无法访问的:
    • 点击添加http规则:类型选择HTTP,端口范围是80,可以是TCP,来源可以改为“任意位置”,描述可以自定义填写。
    • 点击添加https规则:类型选择HTTPS,端口范围是443,可以是TCP,来源可以改为“任意位置”,描述可以自定义填写。

3、配置弹性IP

  1. 在实例中会有公有IP和私有IP,弹性公网IP是一种NAT IP。它实际位于云服务提供商的公网网关上,通过NAT方式映射到了被绑定的云主机实例的私网网卡上。因此,绑定了弹性公网IP的云主机可以直接使用这个IP进行公网通信,但是在它的私网网卡上并不能看到这个IP地址。
  2. 复制代码
  • 点击“分配新地址”按钮,会跳到分配新地址页面,然后选择IPV4地址池,可以是自己配置,也可以选择亚马逊的自动分配的,这里选择亚马逊池,点击“分配”按钮,点击后就会显示分配好的弹性IP。
    • 返回到弹性IP列表,选择刚配置好的弹性IP,此时是没有绑定实例和私有IP的,选中该列,点击上面的“操作”按钮,选择“关联地址”,跳转到关联地址页面,选择实例以及私有IP,实例就是刚才创建的实例,私有IP的查看也是在实例列表中,亚马逊也有提示:如果你将一个弹性 IP 地址与您的实例相关联,您目前的公有 IP 地址将被释放,选择好后点击关联,这样后面使用ssh连接实例时,就可以使用配置好的弹性IP地址。

4、密钥对配置

  1. 刚才说到配置实例时需要选择密钥对,这里可以配置新密钥对,用于后续创建实例时使用,也可以导入密钥对。
  2. 复制代码
  • 点击左侧“密钥对”选项,跳转到密钥对列表,点击左上角“创建密钥对”按钮,输入密钥对名称,点击”创建“,之后密钥对会自动下载到本地,用于之后登陆时使用。
  • 需要删除密钥对的话直接右键删除或者勾选之后点击删除即可。

至此,实例的一些常用基本配置就已经完成了,接下来在本地对已经启动的实例进行连接。

连接

本地连接实例时比较麻烦,在实例里表中,勾选想要连接的实例,会弹出连接实例的方式:一种是使用SSH客户端本地连接,一种是直接从浏览器连接但是需要安装Java,这里使用SSH客户端本地进行连接。

官方给的建议是使用PuTTY进行连接,但是Mac安装PuTTY特别麻烦,并且需要安装一些其他的东西,过于繁琐,这里我使用了SecureCRT进行连接,下载地址:www.vandyke.com/products/se…

同时官方文档也给出其他连接方式,但是比较恶心的是,文档内容特别多,在这里我们只看使用SSH方式连接AWS EC2 Linux版本实例,这是官方给的方式,下面我写出来的是已经填过的坑,连接实例是有先决条件的,就是以下七条:

  • 1、安装SSH客户端
  • 2、安装 AWS CLI 工具
  • 3、获得实例的 ID
  • 4、获得实例的公有 DNS 名称
  • 5、查找私有密钥并验证权限
  • 6、获取用于启动实例的 AMI 的默认用户名称
  • 7、允许从您的 IP 地址到您的实例的入站 SSH 流量

1、安装SSH客户端

一般Mac有自带的终端就可以使用,但是因为首次连接的使用是使用密钥文件进行连接的,所以终端工具不是很方便了,刚才推荐的secureCRT,可以使用密钥对文件转换后的密进行服务器登陆,需要将下载下来的密钥对文件即后缀名为pem的文件转为密钥即可。

  • 安装secureCRT,Mac傻瓜式安装;
  • 转换密钥对文件为密钥串:
    • 使用命令:ssh-keygen -y -f XXX.pem > XXX.pem.pub转换为密钥串文件;
    • 使用命令:cat XXX.pem.pub查看密钥串;
  • 配置secureCRT
    • 点击 + 新建,会弹出对话框,直接continue;
    • port和firewall默认,填写hostname,即上面说到的弹性IP,填写username,即用于启动实例的 AMI 的默认用户名称,如果是ubuntu的系统,则username就是ubuntu,其他的后面会说到;
    • 点击continue,sessionname和description随便填,就是到时候显示的名称而已;点击done
    • 列表会显示创建好的项,显示的名字就是刚才sessionname,右键,点击Properties;
    • 在弹出框中选择SSH2,在右面的Authentication区域,如果Properties不可点击,则先点击一下左边的列表区域中的Public Key,再点击Properties;
    • 在弹出框中,上方勾选“use session public key setting”,然后在下面的Use identity or certificate file中填写刚才使用命令生成的密钥串的那堆字符
    • 点击ok关闭对话框即可。
      至此,secureCRT配置完毕,即SSH客户端配置完毕;使用Windows的朋友可以使用Xshell连接。现在还无法连接AWS,还需要接下来的几步。

2、安装 AWS CLI 工具

首先是官方文档:docs.aws.amazon.com/zh_cn/cli/l…,然后填坑。官方推荐Mac使用pip安装,并且又有一堆先决条件,但是问题又有一堆,需要的东西比较复杂,下面的是比较简单快捷的方式:

  • 安装Python,Mac有自带的Python不需要再次进行安装,版本需要在2.6.5以上,Windows用户请自行安装;
  • 安装 AWS CLI
    • 下载 AWS CLI 捆绑安装程序,在终端执行命令:curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
    • 解压缩程序包(必须安装了unzip):unzip awscli-bundle.zip
    • 运行安装程序: sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
    • 查看是否安装成功:aws --version出现版本号则表示安装成功

    这种方式是Mac下*简单的了,如果使用pip安装,则aws –version命令会提示无效,则需要配置环境变量,主要是配置python的环境变量,比较麻烦,所以上面的方式是比较简单的。

  • 配置 AWS CLI
    1. 配置AWS CLI使用 aws configure命令比较快捷
    2. 复制代码
    • 获取 IAM 用户的访问密钥 ID 和秘密访问密钥。

    访问密钥包含访问密钥 ID 和秘密访问密钥,用于签署对 AWS 发出的编程请求。如果没有访问密钥,您可以使用AWS 管理控制台进行创建。建议您使用 AWS 账户根用户 访问秘钥而不是使用 IAM 账户根用户访问秘钥。IAM 让您可以安全地控制对您的 AWS 账户中 AWS 服务和资源的访问。

    仅当创建访问密钥时,您才能查看或下载秘密访问密钥。以后您无法恢复它们。不过,您随时可以创建新的访问密钥。您还必须拥有执行所需 IAM 操作的权限。有关更多信息,请参阅 IAM 用户指南 中的访问 IAM 资源所需的权限。

    1. 1、打开 [IAM 控制台](https://console.aws.amazon.com/iam/home?#home)。
    2. 2、在控制台的导航窗格中,选择 Users。
    3. 3、选择您的 IAM 用户名称(而不是复选框)。
    4. 4、选择安全证书选项卡,然后选择创建访问秘钥。
    5. 5、要查看新访问秘钥,请选择显示。
    6. 复制代码
    • 在终端执行:aws configure会出现下面的内容,根据提示进行填写:
      1. 1、AWS Access Key ID [None]: 访问密钥 ID,在实例列表查看
      2. 例: AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
      3. 2、AWS Secret Access Key [None]:私有访问密钥
      4. 例:AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
      5. 3、Default region name [None]:默认登陆名称,ubuntu系统为ubuntu
      6. 例:Default region name [None]: us-west-2
      7. 4、Default output format [None]:默认输出文件类型,json或text
      8. 例:Default output format [None]: json
      9. 复制代码

至此,AWS CLI基本配置完成,如果要进行更多配置,可查看官方文档

3、获得实例的 ID

在EC2 dashboard,实例列表中查看实例ID;

4、获得实例的公有 DNS 名称

在EC2 dashboard,实例列表中查看实例的公有 DNS 名称,列名为“公有DNS(IPv4)”;

5、查找私有密钥并验证权限

这步就是使用后缀名为pem的文件进行登陆系统,前面已经配置了secureCRT就不需要这步了;
如果还需要的话,则使用下面的方式进行:

  1. 您的密钥必须不公开可见,SSH 才能工作。如果需要,请使用此命令:
  2. chmod 400 xxxx.pem
  3. 通过其 公有 DNS 连接到您的实例,如实例为:ec2-13-59-115-229.us-east-2.compute.amazonaws.com
  4. 则使用命令:ssh -i xxxx.pem 服务器用户名@ec2-13-59-115-229.us-east-2.compute.amazonaws.com
  5. 复制代码

6、获取用于启动实例的 AMI 的默认用户名称

  • 对于 Amazon Linux 2 或 Amazon Linux AMI,用户名称是 ec2-user。
  • 对于 Centos AMI,用户名称是 centos。
  • 对于 Debian AMI,用户名称是 admin 或 root。
  • 对于 Fedora AMI,用户名为 ec2-user 或 fedora。
  • 对于 RHEL AMI,用户名称是 ec2-user 或 root。
  • 对于 SUSE AMI,用户名称是 ec2-user 或 root。
  • 对于 Ubuntu AMI,用户名称是 ubuntu。
  • 另外,如果 ec2-user 和 root 无法使用,请与 AMI 供应商核实。

7、允许从您的 IP 地址到您的实例的入站 SSH 流量

该步骤即配置安全组,开放22端口用于SSH连接,80或443用于访问Web程序;

8、使用secureCRT连接实例服务器

在secureCRT中直接点击要登陆的服务器,如下则表示登陆成功:

至此,实例已经全部配置完成,并成功连接。

安装Nginx

因为使用的是ubuntu,则可以直接使用命令进行安装:sudo apt-get install nginx
安装完成后,启动nginx,执行命令:sudo service nginx start
检测nginx在服务器是否安装成功,执行命令:curl http://localhost
如果出现:如下图则表示安装成功。

参考:www.jianshu.com/p/a43c3e0f0…

访问

直接在PC浏览器地址栏输入弹性IP地址,如果出现下图则表示nginx安装成,并且服务器实例已经可用,后续就可以在服务器部署相关程序。

其他

  • 删除实例:在实例列表要删除的实例上右键-实例状态-终止即可,终止即代表删除实例,但是不会马上删除,一般十分钟左右会自动销毁。
  • 设置服务器root密码:
    • 使用命令:sudo passwd root
    • 会提示需要输入两次密码,输入即可
  • 设置服务器用户密码:
    1. 设置完密码后,后续登陆可以直接使用终端或者其他SSH客户等登录,使用弹性IP地址、用户名、密码即可
    2. 复制代码
    • 切换到root用户,使用命令passwd 你的用户名
    • 输入两次密码即可

总结

总的来说,配置的流程相对比较繁琐,尤其是配置AWS CLI里面内容比较多,官方文档给的也比较多,如果疑问,请联系bo.wang1016@outlook.com

参考

AWS Command Line Interface介绍:docs.aws.amazon.com/zh_cn/cli/l…
Amazon EC2 实例介绍:docs.aws.amazon.com/zh_cn/AWSEC…
AWS EC2搭建web服务器:www.jianshu.com/p/a43c3e0f0…

苹果cms百度主动URL推送教程

为了提高网站seo优化,网站搭建正常运转后我们需要对网站的视频,资讯,文章等内容数据能够及时的提交给百度搜索,缩短蜘蛛爬取收录时间加快收录。我们需要对苹果cms系统自带的百度主动URL推送进行设置使用。

百度URL推送链接提交工具是网站主动向百度搜索推送数据的快捷工具,本快捷提交工具可缩短爬虫发现网站链接时间,网站时效性内容建议使用链接提交工具,能够及时实时向搜索推送数据。本工具可加快爬虫抓取速度,无法解决网站内容是否收录问题。
下面我们就来说下具体的操作步骤:
1,我们首先访问百度搜索资源平台:

%title插图%num(https://ziyuan.baidu.com/dashboard/index/)点击链接提交

2,点击>>自动提交>>主动推送>>复制 (token= )红框内的内容

%title插图%num
简单说下主动推送和自动推送的区别
①主动推送:*为快速的提交方式,推荐您将站点当天新产出链接立即通过此方式推送给百度,以保证新链接可以及时被百度收录。(主动推送:推送的是新的文章链接)

②自动推送:*为便捷的提交方式,请将自动推送的JS代码部署在站点的每一个页面源代码中,部署代码的页面在每次被浏览时,链接会被自动推送给百度。可以与主动推送配合使用。(自动推送:推送的是被点击浏览你的文章)

3,复制token后来到苹果cmsv10系统后台>>应用>>URL推送>>把复制的内容粘贴到>>推送tokne的框里保存即可。

%title插图%num
温馨提示
提示:全部数据将以历史数据新增,建议首次使用完整的提交1次。当天数据将以实时数据新增,不包括更新数据,只包含当天新增加的数据。断点会记录在缓存中,更新缓存后断点将消失。
百度搜索资源平台为站长提供链接自动提交通道,您可以利用快捷工具自动提交想被百度收录的链接,百度搜索引擎会按照标准处理,但不保证一定能够收录您提交的链接请知悉。

AWS CLI 的安装和使用

一、安装

1、windows下使用MSI installer安装:

MSI installer 下载地址:https://http://www.wendangku.net/doc/e42df932011ca300a6c3907f.html /aws-cli/AWSCLI64.msi (64位下载) 2、linux下使用 bundled installer下载: Bundled installer下载: wget https://http://www.wendangku.net/doc/e42df932011ca300a6c3907f.html /aws-cli/awscli-bundle.zip unzip awscli-bundle.zip sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws 如果你没有sudo权限或者想要使用当前用户安装AWS CLI 则,运行下面的命令: ./awscli-bundle/install -b ~/bin/aws

3、安装AWS CLI要使用pip(要先安装python,在python下安装pip)

A、安装python:

B、安装好后使用easy_install 安装pip,输入命令 easy_install pip

C、如果没有easy_install 运行

D、安装好pip之后,运行命令:pip install awscli

F、输入命令:aws help 检测是否安装好aws cli

二、配置

AWS CLI是需要有IAM账号,首先创建IAM账号。再在命令行输入:

aws configure

根据提示输入相应的 aws access key ID ,aws secret access key以及region。接下来就可 以使用AWS CLI进行操作了。

三、使用

1、EC2的启用:run-instances

[ {
“DeviceName”: “/dev/sdb”,

“Ebs”: {
“VolumeSize”: 20,

“DeleteOnTermination”: false,

“VolumeType”: “standard”

}

},

{
“DeviceName”: “/dev/sdc”,

“Ebs”: {
“VolumeSize”: 10,

“DeleteOnTermination”: true,

“VolumeType”: “standard”

}

}

]
%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

苹果cms用宝塔定时采集+添加百度推送教程

黑衣人查看:https://www.9499.tv/index.php/voddetail/111.html
准备工作
1,安装的宝塔面板(和苹果cms在不在一个服务器上都可以)
2,安装好的苹果CMS v10
3,采集需要先绑定好分类,生成需要下配置好url模式

用宝塔来触发定时任务,效率高,稳定性好,不受限于页面访问触发,推荐使用~~~ 当然如果没有条件可以使用页面触发

4,添加定时任务,参数可在程序包的说明文档内找到。

有些人还不会获取参数,建议使用谷歌浏览器或 360*速浏览器,在 采集当日或其他链接上 右键, 复制链接。

例如添加一个采集今日的任务,首先获取链接。
https://www.abc.com/admin.php/admin/collect/api.html?ac=cj&cjflag=0cf3a9d9fc61488a2ad80031abd63003&cjurl=http%3A%2F%2Fwww.abc.com%2Finc%2F2088m3u8.php&h=24&t=&ids=&wd=&type=1&mid=1¶m=
把?号前面的都删除掉。
得到的参数就是 ac=cj&cjflag=0cf3a9d9fc61488a2ad80031abd63003&cjurl=http%3A%2F%2Fwww.abc.com%2Finc%2F2088m3u8.php&h=24&t=&ids=&wd=&type=1&mid=1&param=
放到定时任务里就可以了。(注意 一定要点击启用) 执行周期 全选 执行时间 全选

点击测试,获取访问url,复制下来,稍后会改为弹出新窗体,那样比较好复制。

https://www.abc.com/api.php/timming/index.html?name=aa

5,进入宝塔,计划任务,添加一个任务。

选择访问URL
执行周期自己定义根据需要。
url地址填写刚才复制的地址。

点一下执行,看看日志。 看到了吧, 这样不管网站有没有人访问,都可以执行的。

第二个是我以前直接写好的,我看很多人都不会设置,就在此讲解下 无视我刚刚看的那个(第二个)

还有这个生成首页 跟设置定时采集一样,也是这样操作, 大家要学会 举一反三

在有非常笨的人直接私聊我 帮你远程操作吧, 这教程说明的很详细了,你说你在不会真的说不过去了

直接在讲解下 如何在自己电影站上面 添加百度推送代码

https://ziyuan.baidu.com/linksubmit/index

添加自己的网站 个人建议 全站https 模式 这个看个人爱好 自己看着操作就可以了

添加完毕 我们点击 链接提交

找到 自动推送

然后我们登录自己的服务器 找到自己模版目录 然后在找到 你模版的底部文件 底部文件一般都是foot.html

然后我们编辑 foot.html 文件

在回到 百度推送这里 复制代码 粘贴到你 这个文件的*底部 就OK了 不用在手动去推送了, 这样全自动推送

省时省力

有的人说为什么放到 底部文件 或者也可以放到头部文件,但是强力建议放到底部文件 因为不管你打开你网站什么位置都会显示你底部

知道为什么了吧

所以不管你们加不加推送代码 是你们自己的事 我只是友情提示叫你们加上 只有好处没坏处

友情链接: SITEMAP | 旋风加速器官网 | 旋风软件中心 | textarea | 黑洞加速器 | jiaohess | 老王加速器 | 烧饼哥加速器 | 小蓝鸟 | tiktok加速器 | 旋风加速度器 | 旋风加速 | quickq加速器 | 飞驰加速器 | 飞鸟加速器 | 狗急加速器 | hammer加速器 | trafficace | 原子加速器 | 葫芦加速器 | 麦旋风 | 油管加速器 | anycastly | INS加速器 | INS加速器免费版 | 免费vqn加速外网 | 旋风加速器 | 快橙加速器 | 啊哈加速器 | 迷雾通 | 优途加速器 | 海外播 | 坚果加速器 | 海外vqn加速 | 蘑菇加速器 | 毛豆加速器 | 接码平台 | 接码S | 西柚加速器 | 快柠檬加速器 | 黑洞加速 | falemon | 快橙加速器 | anycast加速器 | ibaidu | moneytreeblog | 坚果加速器 | 派币加速器 | 飞鸟加速器 | 毛豆APP | PIKPAK | 安卓vqn免费 | 一元机场加速器 | 一元机场 | 老王加速器 | 黑洞加速器 | 白石山 | 小牛加速器 | 黑洞加速 | 迷雾通官网 | 迷雾通 | 迷雾通加速器 | 十大免费加速神器 | 猎豹加速器 | 蚂蚁加速器 | 坚果加速器 | 黑洞加速 | 银河加速器 | 猎豹加速器 | 海鸥加速器 | 芒果加速器 | 小牛加速器 | 极光加速器 | 黑洞加速 | movabletype中文网 | 猎豹加速器官网 | 烧饼哥加速器官网 | 旋风加速器度器 | 哔咔漫画 | PicACG | 雷霆加速