grafana重置密码

找到grafana.db数据库,用sqlite工具执行下无sql语句

1
update user set password = '59acf18b94d7eb0694c61e60ce44c110c7a683ac6a8f09580d626f90f4a242000746579358d77dd9e570e83fa24faa88a8a6', salt = 'F3FAxVm33R' where login = 'admin';

重置后登录用户和密码为:admin/admin

用户加入sudo列表

新创建的用户,使用sudo切换到root时提示错误

1
xxx is not in the sudoers file.  This incident will be reported.

解决方法:

1
2
3
4
5
6
7
8
9
10
# 切换到`root`下
su
# 授权
chmod u+w /etc/sudoers
# 编辑sudoers文件
vi /etc/sudoers
# 添加
username ALL=(ALL) ALL
# 保存
chmod u-w /etc/sudoers

配置免费ssl证书

安装acme.sh

官方安装

1
curl  https://get.acme.sh | sh -s email=my@example.com

安装之后会在目录下生成个.acme.sh目录

资源在github,经常下载失败,手动克隆仓库安装

https://github.com/acmesh-official/acme.sh同步到gitee上,再克隆下来,执行下面命令

1
2
3
4
git https://gitee.com/xxx/acme.sh.git
cd acme.sh
./acme.sh --install -m my@example.com
alias acme.sh=~/.acme.sh/acme.sh

生成证书

1
acme.sh  --issue -d www.example.com  --webroot  /home/wwwroot/example.com/

如果80端口只配置了一个站点,可以这样

1
2
3
4
# apache
acme.sh --issue -d www.example.com --apache
# nginx
acme.sh --issue -d www.example.com --nginx

安装证书

官方例子nginx

1
2
3
4
5
acme.sh --install-cert -d www.example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd "service apache2 force-reload"

官方例子apache

1
2
3
4
acme.sh --install-cert -d www.example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd "service nginx force-reload"

手动安装

拷贝到指定的目录

1
2
cp  ~/.acme.sh/www.example.com/fullchain.cer /etc/nginx/ssl/www.example.com.cer
cp ~/.acme.sh/www.example.com/www.example.com.key /etc/nginx/ssl/www.example.com.key

修改nginx配置/etc/nginx/conf.d/www.example.com.conf

  • 启用https
1
2
listen 443 ssl;
listen [::]:443 ssl;
  • 证书
1
2
ssl_certificate /etc/nginx/ssl/www.example.com.cer;
ssl_certificate_key /etc/nginx/ssl/www.example.com.key;
  • http跳转https
1
2
3
4
5
server {
listen 80;
server_name www.example.com;
return 301 https://$server_name$request_uri;
}

ssh长时间保持不断开

远程ssh连接服务器,默认长时间不用会自动断开,设置不自动断开方式有三种

客户端连接加参数

1
2
# 相当于每隔120秒向服务器发送心跳
ssh -o ServerAliveInterval=120 user@ip

客户端设置配置

如果ssh服务器信息放~/.ssh/config中的,设置ServerAliveInterval

1
2
3
4
Host alias 
HostName ip
User root
ServerAliveInterval 120

服务器配置

修改sshd_config

1
2
3
4
5
6
7
vi vim /etc/ssh/sshd_config

## 发送心跳间隔
ClientAliveInterval 120
## 最大发送次数
ClientAliveCountMax 720

在shell中执行一个字符串

写shell脚本时经常会拼接一个字串,然后当成命令执行,用到的linux命令是eval ${str}或者echo ${str} | sh,例子如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/env bash

start=1
amount=$1
raceId=$2
api_host=127.0.0.1:8080
str="curl --location --request POST 'http://${api_host}/api/AddBuy'
--header \"'Content-Type':'application/json'\"
--data-raw '{
\"PidStart\":$start,
\"Amount\":${amount},
\"RaceId\":${raceId}
}'"

echo ${str} | sh
# 或者
eval ${str}

github多帐号添加ssh公钥

github有两个账号,但是同一个ssh公钥只能添加给一个账号,需要再生成一个密匙后添加。步骤如下:

再添加一个ssh密匙

1、指定邮箱

1
2
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Generating public/private rsa key pair.

2、提示输入生成位置和文件名,取个不同的名称。如: /Users/you/.ssh/id_rsa1

1
Enter file in swhich to save the key (/Users/you/.ssh/id_rsa):

在centos7上安装php

###默认安装

1
yum install php

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案:

检查当前安装的PHP包
1
yum list installed | grep php

如果有安装的PHP包,先删除他们

1
yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

把github作为静态资源cdn

博客是用hexo搭建的,没有上传图片的功能,于是想把图片都放github上。需要图片的时候![Alt text](/path/to/img.jpg "Optional title")这样就可以插入了。

在github上创建仓库,名字自己取,以我自己的为例,仓库为static_cdn,克隆到本地:

1
2
3
4
5
6
7
# 克隆
$ git clone git@github.com:liukaijv/static_cdn.git
# 打开目录
$ cd static_cdn
# 新建images文件夹
$ mikdir images

hexo的md文件中使用html、css、javascript

有时候想写点前端小demo,因为代码量实在是太少了,几行css、几行javascript;不想放在codepen作为引用,也不想单独做一个页面放到主题的source文件夹下,于是就有了在md文件里直接写的想法。

Apache的访问权限配置

在apache2.4版本之前做客户端访问控制,是用Allow Deny Order指令做访问控制的,而在2.4的版本上是用的用法跟之前的版本大不相同,如下

################################################ 
2.2上的配置 
Order deny,allow 
Deny from all 
 
2.4上的配置 
Require all denied 
 
################################################ 
2.2上的配置 
Order allow,deny 
Allow from all 
 
2.4上的配置 
Require all granted 
 
#################################################