Linux免密码登陆
1. 生成公钥和私钥
ssh-keygen -t rsa
按照提示输入完后,会在~/.ssh目录下生成id_rsa和id_rsa.pub这两个文件
2.与服务器建立联系
ssh-copy-id root@192.168.0.100 //示例ip
接下来会要求输入连接密码,验证成功后
3.无密码登陆服务器
尝试以下命令,看是不是直接登陆成功了:ssh root@192.168.0.100
就是这么简单
ssh-keygen -t rsa
按照提示输入完后,会在~/.ssh目录下生成id_rsa和id_rsa.pub这两个文件
ssh-copy-id root@192.168.0.100 //示例ip
接下来会要求输入连接密码,验证成功后
尝试以下命令,看是不是直接登陆成功了:ssh root@192.168.0.100
就是这么简单
1 | include: [ |
如
Sequelize查询的数据表只有10条数据,但查询结果是20,只要不加include条件就是正确的10,是带上了include中的model表的数据的10条
1 | distinct:true |
说明
1 | const res = await ctx.model.Guarantee.findAll({ |
1.谷歌云
2.node环境、ubuntu
1 | sudo apt install npm |
安装 shadowsocks
1 | npm install -g shadowsocks |
linux环境下缺省shadowsocks配置文件路径/usr/local/lib/node_modules/shadowsocks/config.json
1 | { |
1 | $ pm2 start ssserver |
我有很多自己的个人代码是跑在家里的服务器中的.一般来说都是自动化的处理我的一些生活问题,与数据收集等相关活动.
所以一般没有客户端访问家里服务器的需求.
但是很多时候脑子突发奇想.有一些小点子,一些小的bug或者小的优化,代码修改完成之后,有一个部署到需求.
因为家里服务器没有一个稳定的外网IP的,外网不能直接连接服务器.
所以我们需要 内网穿透
选择ngrok的原因很简单,配置方便,并且支持tcp协议.
支持tcp协议代表,我可以直接在外面用SSH来访问家里的机器.
首先你需要去官网注册一个账号
下载ngrok,并且解压到一个你喜欢的目录下面
去官网复制你的授权码
授权ngrok
ngrok authtoken 授权码
ngrok http 8080
ngrok tcp 22
最终你会得到,一个外网可以访问的地址.
用这个地址就可以直接访问到你本机的端口了.
当我们拥有这样一个公网地址之后,我们就可以ssh来控制家里的机器
或者使用github的webhook来做一切你想要做的事情.
1、代码通过git管理,放在了coding上(放在github或者其他平台也都可以)
2、服务器用的阿里云
3、服务器用的ubuntu 16.04
4、客户端用的mac
5、docker镜像平台为dockerhub
1、服务器开通SSH
2、服务器安装Docker
3、掌握基本的shell命令
1、服务器 安装docker
https://docs.docker.com/install/
2、服务器拉取docker jenkins镜像:
1 | docker pull jenkins:latest |
3.服务器运行dokcer jenkins容器:
1 | sudo docker run -d --name jenkins_node -p 49002:8080 -v /var/jenkins_node:/var/jenkins_home jenkins:lates |
Mac 和 win的键盘不一样,但使用 Mac 一年时间感觉 Mac 键盘部局还是比较好用的。为了按键匹配把 Alt 和 Win 键换一下,可以直接在 Mac的设置中设置:
Setting -> Keyboard -> Modifier Keys… -> Select Keyboard (choose USB Keyboard) -> switch Option Key and Command Key
这样设置完之后 Win键就和 Command 对应了,Command + C, Command + V 用起来习惯多了。
经常听音乐,所以常需要调节音量,但 F1-F12已经被我改为普通功能了,所以不能直接改过来用作多媒体控制(我主要用来控制音量)在 zhihu 上找到有人推荐Karabiner 下载了一个来玩,感觉还是蛮好用的。
这里我将87键键盘的右上角三个键 Ps/SR, ScLk, Pa/Br 键对应到音量静音、减、增三个键,这个功能有预置,可以直接搜索到并 enable 即可:
另外也可以自定义按键对应:
打开 private.xml 输入需要定制的内容
1 | <?xml version="1.0"?> |
保存后 reload 即可。
更多例子参考官方样例中的代码
有了高效的工具就剩下好好工作了~
报错:
1 | root@iZ94t4csjq4Z:~# mongo |
解决方法:
1 | sudo rm /var/lib/mongodb/mongod.lock |
报错:
1 | root@iZ94t4csjq4Z:~# sudo service mongodb start |
1 | root@iZ94t4csjq4Z:~# sudo chown -R mongodb:mongodb /var/lib/mongodb |
等了好久好久,今天终于见到你了。
首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/。
这些客户端支持最新的ACME v2接口,而这个接口目前已经正式支持申请通配符证书啦。
这里,我使用acme.sh(https://github.com/Neilpang/acme.sh)这个Client,它是直接在bash下运行,使用非常简单,而且支持大多数DNS服务器的API自动验证!
1 | curl https://get.acme.sh | sh |
一句话完成安装,安装过程分为:
1)复制acme.sh的程序文件到当前用户主目录,比如root用户的:~/.acmh.sh目录下
2)创建一个alias:acme.sh=~/.acme.sh/acme.sh
1 | vim ~/.acmh.sh/account.conf |
1 | acme.sh --issue -d junyao.tech -d *.junyao.tech --dns dns_ali |
注意,这里–dns参数使用的是dns_ali,告诉acme.sh使用阿里云的DNS接口去自动验证。(好处:全程无干预,不需要暂停web服务器!)
首先我们要把生成的证书文件复制出来,这里我放到/etc/nginx/ssl/目录下,运行下面命令:
1 | acme.sh --install-cert -d junyao.tech \ |
1 | server { |
最后reload一下 nginx
这里把几个命令整一起,方便使用。
首先,我这里用的阿里云的解析,所以,需要提前设定阿里云的密钥,方法是:
1 | vim ~/.acmh.sh/account.conf |
保存之后,后面使用这个参数时(–dns dns_ali),就自动读这个信息了。
下面是把申请证书和复制证书放在一个文件(new_https.sh)中执行了,只需要传入参数(申请的域名),完成后,只需要去手动修改下apache的配置即可(nginx同理)
1 | #!/bin/bash |
使用方法:
1 | new_https.sh junyao.tech |
先讲讲简单的monngodb部署docker.
MongoDB 是一款较为常用的NOSQL 数据库,结合 Docker 使用,能实现轻松配置部署、迁移,本文以下为简要介绍如何在 Docker 中部署并使用 MongoDB。下文主要分为几个部分,内容如下:
MongoDB 镜像安装
MongoDB 容器创建
MongoDB 容器数据目录挂载
MongoDB 数据迁移
MongoDB 常用 Docker 命令
MongoDB 提供官方镜像,下载安装镜像方法如下:
1 | docker pull mongo |
以上命令为安装 MongoDB 最新版本的镜像。
MongoDB Docker 容器创建有以下几个问题:
1- MongoDB 容器基本创建方法和数据目录挂载
2- MongoDB 容器的数据迁移
3- MongoDB 设置登录权限问题
MongoDB 容器基本创建命令如下:
1 | docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb -d mongo |
在上面的命令中,几个命令参数的详细解释如下:
-p 指定容器的端口映射,mongodb 默认端口为 27017
-v 为设置容器的挂载目录,这里是将即本机中的目录挂载到容器中的/data/db中,作为 mongodb 的存储目录
–name 为设置该容器的名称
-d 设置容器以守护进程方式运行
以上是 MongoDB 容器创建后的信息。
随后我们创建一个test_database的数据库,然后在创建一个test_collection的集合.
接下来,我们先停止刚才创建的 docker_mongodb 容器,命令如下:
1 | docker stop docker_mongodb |
然后我们再创建一个新的 MongoDB 容器,挂载刚才刚刚的数据目录,命令如下:
1 | docker run -p 27017:27017 -v <LocalDirectoryPath>:/data/db --name docker_mongodb_migration -d mongo |
我们可以容器查询命令,查看当前 Docker 的容器状态,命令如下:
1 | docker container ls -a |
这里的 -a 参数是查看所有的容器,包括已经停止的容器。
连接数据库,可以看到我们看到我们再 docker_mongodb 中创建的数据,这里表明我们新创建的 docker_mongodb_migration 挂载的数据目录和 docker_mongodb 相同,利用这一方法,我们可以实现简单的数据迁移。
1 | # 查看正在运行的容器 |
1 | # 指定 CONTAINER ID 停止容器 |
1 | # 指定容器 CONTAINER ID 启动容器 |
1 | # 指定容器 CONTAINER ID 重启容器 |
1 | docker exec -it <CONTAINER NAME> mongo admin |
再讲讲简单的node部署docker.
一直以来,在微信中内嵌视频总是收到IOS及微信的双重限制,主要是必须被调用原生播放器,但是我希望在HTML的文档流中内嵌视频,而不调用原生组件,其方法是
第一步:调用createjs框架
1 | <script src='/path/createjs-2015.11.26.min.js'></script> |
第二步:DOM部分:
1 | <canvas id="canvas" width="640" height="1008"></canvas> |
第三步;CSS部分:我使用的是全屏幕绘制,将视频元素隐藏
1 | canvas{ |
第四步:JS部分:
以下是设置video元素的属性
1 | var video = document.getElementById('video'); |
以下开始绘制视频
1 | var stage = new createjs.Stage('canvas'); //设置舞台 |
演示地址