您正在查看: 学习心得 分类下的文章

Github中提交Commit时使用GPG进行加密

概述

GPG 是一种加密算法,在 Git 中提交 Commit 时可以使用 GPG 进行加密,来保证提交的 Commit 没有被篡改,具体体现在 Github 提交的时候会有一个 verified 的标志。
QQ截图20200121153639.png

这里我是在 Windows 下操作来生成 GPG 密钥的,其他系统环境下操作可能会有不同

准备工作

生成GPG密钥之前,可以检查当前电脑是否存在有 GPG 密钥

1 打开 Git Bash
2 使用 gpg --list-secret-keys --keyid-format LONG 命令列出同时具有公共密钥和私有密钥的GPG密钥。签名提交或标记需要私钥。

gpg --list-secret-keys --keyid-format LONG

3 检查命令输出以查看是否具有 GPG 密钥
如果没有GPG密钥对,则生成一个新的GPG密钥
2020-01-21T08:02:03.png

- 阅读剩余部分 -

饭饭's 随机图片 Api → Random-Image-Api

饭饭's 随机图片 Api → Random-Image-Api

一个能够获取随机图片的 Api,基于 Spring Boot 构建

Demo:https://api.ffis.me/imgApi/index.html
Github: https://github.com/noisky/Random-Image-Api

可读取本地图片列表的地址,并提供随机访问服务,可配置域名白名单访问

2020-01-07T16:01:56.png

项目说明

程序启动的时候会自动加载 项目路径/list 文件夹下的所有列表文件;

图片列表文件:

  • 提供访问路径为文件名的随机图片服务
  • 文件命名格式 xxx.txt 必须为 .txt 结尾,每行一个图片url

域名白名单列表文件:

  • 会开启域名白名单访问,只允许列表中的域名进行接口调用
  • 命名只能为 domains.txt,每行一个域名,支持泛域名

    • 例如输入 test.com ,则会允许所有 test.com 结尾的域名访问
  • 若域名列表文件不存在或者文件为空,则会关闭域名白名单服务,任何域名都可以进行调用。
更改列表文件后,刷新图片缓存即可生效。

编译运行

# 拉取项目
git clone https://github.com/noisky/Random-Image-Api.git
# 使用 maven 打包
mvn clean package
cd target && java -jar Random-Image-Api-1.0.0.jar
# 将写好的图片列表文件放入 list 文件夹,刷新缓存即可正常访问
http://localhost:9090/flush
# 默认访问端口 9090
http://localhost:9090/random/{图片列表文件名}
# 主页地址
http://localhost:9090/index.html

接口调用:

1、获取随机图片:

  • 请求方式:GET请求

    • 请求地址:/random/{images}
    • {images} 则对应为 images.txt 文件里面的所有图片地址

2、获取每日图片:

  • 请求方式:GET请求

    • 请求地址:/today/{images}
    • {images} 则对应为 images.txt 文件里面的所有图片地址

3、刷新图片缓存:

  • 请求方式:GET请求

    • 请求地址:/flush

已完成功能:

  • 获取每日图片
  • 读取本地列表的图片地址,提供随机访问
  • 域名白名单访问,未授权的域名访问会跳转到未授权页面

TODO:

  • 提供本地图片的随机访问
  • 接口调用统计

Centos下使用shell脚本来批量管理Spring Boot Api服务

前言

最近在部署Spring Boot构件的Api
因为有多个jar要启动,启动的参数也都不一样 不高兴.png
搞的我都蛋疼了,只好研究下使用shell脚本来一键管理了
花了两个小时,终于把脚本撸出来了 太开心.png
注意如果在windows下创建shell脚本文件,注意文档格式要转换为unix才能在linux中运行
推荐直接在linux中直接使用vi创建shell脚本文件

创建脚本

在指定路径下运行vi startAll.sh来创建脚本文件
参考如下代码:

- 阅读剩余部分 -

自己动手造了个监控域名可否注册的Api → CheckDomain

前两天我看中了一个域名处于即将删除的状态 委屈.png ,想着如果能监控域名能注册了给我发邮件就好了,于是就花了一晚上撸出了 CheckDomain 来帮我监控这个域名 太开心.png

2019-12-07T15:13:37.png

CheckDomain 是一个用来检查域名是否能注册的 Api,基于 Spring Boot 构建,使用了阿里云域名查询 Api;

可实现对域名状态查询,可注册监控等,并在可以注册的时候发送邮件通知。

也算是自己动手做的第一个完整的项目吧 笑眼.png
既然有了兴趣点,所以就准备把所学的知识给串一下,能用上的都用上,也算是学以致用吧~ 捂嘴笑.png

Github:https://github.com/noisky/CheckDomain

接口调用:

1、查看域名状态:

  • 请求方式:GET请求

    • 请求地址:/domain/{name}
    • 参数说明:

      • {name}: 查询的域名

2、查看域名状态并在可注册时发送邮件通知:

1)请求方式:GET请求

  • 请求地址:/domain/{name}/{email}/{querykey}
  • 参数说明:

    • {name}: 查询的域名
    • {email}: 接受通知的邮箱地址
    • querykey: 查询密码,在 yml 配置文件中设置

2)请求方式:POST请求

  • 请求地址:/domain/{name}
  • 参数说明:

    • {name}: 查询的域名
    • POST 提交的表单:

      • email: 接受通知的邮箱地址

      • querykey: 查询密码,在 yml 配置文件中设置
可以使用第三方监控(如阿里云监控)来请求 Api 来达到监控域名注册状态

现在已经实现了基本功能:

  • 检查域名是否能注册
  • 监控域名状态,如果可以注册,发送邮件通知
  • 使用 Freemarker 实现邮件模板的静态化
  • 使用 Logback 记录系统运行日志

TODO:

  • 编写前端页面,方便查询
  • 限制接口的调用频率
  • 统计并记录接口的调用次数,调用耗时等信息
  • 接入其他域名查询 Api
  • 自己实现域名 whois 查询(有生之年系列)

...

- 阅读剩余部分 -

Docker的基本操作与使用

1 Docker简介

Docker 是一个开源的应用容器引擎,基于 Go 语言开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻
量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互
之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

  • Docker应用场景

    • Web应用的自动化打包和发布
    • 自动化测试和持续集成、发布
    • 在服务型环境中部署和调整数据库或其他的后台应用
  • 简单的说:使用Docker可以实现开发人员的开发环境、测试人员的测试环境、运维人员的生产环境的一致性。

Docker01.jpg

Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个模型运用到自己的设计
中,唯一不同的是:集装箱运输货物,而Docker运输软件。

- 阅读剩余部分 -

windows下配置双网卡分流实现内网外网同时上网

前提概要:工作和学习中,有时候需要实现内网和外网同时访问,内网环境访问不了外网,访问外网使用手机热点又得拔掉网线,来回切换显得非常麻烦,其实在连接热点的情况下,电脑上是有两个网卡的,这个时候经过配置网关分流可以实现内网和外网同时访问的,下面就对我的折腾经验作为分享。 小乖.png

首先使用ipconfig命令查看本机的网络环境

内网(局域网):
以太网:
   IPv4 地址 . . . . . . . . . . . . : 192.168.46.50
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 192.168.46.1

外网(手机热点):
以太网2:
   IPv4 地址 . . . . . . . . . . . . : 172.20.10.3
   子网掩码  . . . . . . . . . . . . : 255.255.255.240
   默认网关. . . . . . . . . . . . . : 172.20.10.1

可以看到两个网卡是同时连接的,使用route print命令查看路由表可发现:

0.0.0.0 0.0.0.0 172.20.10.1 172.20.10.3 外网
0.0.0.0 0.0.0.0 192.168.46.1 192.168.46.50 内网

指向0.0.0.0的有两个网关,这样就会出现路由冲突,两个网络可能不能同时访问。
PS:0.0.0.0指的是本机上的所有IPV4地址

想实现同时访问也很简单
1.删除0.0.0.0的所有路由
route delete 0.0.0.0

2.重新添加0.0.0.0网络路由的网关为外网网关,将所有流量默认走外网网关
route add 0.0.0.0 mask 0.0.0.0 172.20.10.1

3.将内网网段192.168.46.*的所有流量走内网网关,这样就实现了内网外网同时访问互不影响
route add 192.168.46.0 mask 255.255.255.0 192.168.46.1

这里经过我抓包发现内网还有一个网页的服务器地址为192.168.50.187,于是我还需要再添加一个网段走内网流量
route add 192.168.50.0 mask 255.255.255.0 192.168.46.1

好了完结撒花~ 你懂的.png
当然这样设置只是临时的,重启就会失效,可以在命令最后加上-p设为静态(永久)路由,防止下次重起时配置消失。

centos 删除和添加swap交换空间

最近开了个老毛子的小鸡,最低配的5G硬盘,玩起来也只能当跳板了
除去系统的一个多G,我发现系统默认配置了2G的swap交换区,本来空间就小,索性就删除之 滑稽.png

删除swap交换区

1)首先停止swap分区
/sbin/swapoff /swapfile
2)删除swap分区文件
rm -rf /swapfile
3)删除自动挂载的配置命令
首先打开配置文件
vi /etc/fstab
然后删除下面这行
/swapfile swap swap default 0 0
这样swap分区就删除完毕了 太开心.png

如果后续想添加也可以手动添加

增加swap交换区

- 阅读剩余部分 -

记录下win10配置git过程

本机环境:Windows10 1809 64bit

开始:

1 下载git

官方下载地址:https://git-scm.com/download/win

2 安装git

1、安装页面
Install_start.png

2、安装路径
Install_path.png

- 阅读剩余部分 -

Win10平台下JDK的下载安装与环境配置

最近学习了配置JDK环境,记录下来供以后参考。 乖.png

一、下载

1.首先打开JDK的官方下载页面:https://www.oracle.com/technetwork/java/javase/archive-139210.html
里面有Java SE所有版本的下载:
JDK所有版本下载
2.选择你需要的Java SE版本,在这里我要下载的是windows版本的,必须要接受协议才能下载,选择"Accept License Agreement"
JDK下载
3.可能需要你登录才能下载,注册一个账号即可。等待下载完成之后可看到类似于这样一个文件:
JDK-9.0.4安装包.png

- 阅读剩余部分 -

Centos下给PHP开启fileinfo扩展

由于需要用到fileinfo,而编译安装php的时候恰巧忘了安装fileinfo,现在给php配置fileinfo扩展,并记录下过程仅供参考。


首先如何查看php是否安装了fileinfo扩展?
在vps上直接运行php -m命令即可查看PHP已经安装了哪些扩展;
或者新建一个PHP文件,写上如下内容:

<?php
    phpinfo();
?>

将PHP文件上传至网站目录,访问文件即可在线查看PHP的配置信息。


下面看如何开启PHP的fileinfo扩展
1.找到phppize目录,一般在安装好的php目录下,可使用find / -name fileinfo命令来查找,找到在哪后进入该目录;
QQ截图20181130153434.png

2.在fileinfo目录下执行/www/server/php/72/bin/phpize命令,命令中的命令为自己服务器的实际路径为准;
执行成功后会有如下提示:

Configuring for:
PHP Api Version:         20170718
Zend Module Api No:      20170718
Zend Extension Api No:   320170718

3.找到安装PHP文件的源目录,如果实在找不到的话可重新下载相同版本的PHP解压即可,
这里我目录为:/www/server/php/72/bin/php-config

4.配置php-config路径,以自己服务器的实际路径为准;

./configure --with-php-config=/www/server/php/72/bin/php-config

5.编译安装

make && make install

如果安装成功,会有类似以下信息

Installing shared extensions:     /www/server/php/72/lib/php/extensions/no-debug-non-zts-20170718/

6.修改PHP配置文件php.ini,这里我的文件路径为:/www/server/php/72/etc/php.ini
在后面加入如下一行:

extension = fileinfo.so;

7.最后重启nginx以及php-fpm这个时候phpfinfo信息里就会出现fileinfo,到此fileinfo安装完毕~ 太开心.png

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5