nginx.conf 配置:

1
2
3
4
5
6
7
8
9
10
11
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

map $time_iso8601 $logdate {
'~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd;
default 'date-not-found';
}

access_log logs/access-$logdate.log main;
open_log_file_cache max=10;

参考:

简单搞定Nginx日志分割

简介

  • prometheus:负责收集和存储时间序列数据
  • alertmanager: 警告信息通知
  • node-exporter:负责暴露主机 metrics 数据给 prometheus
  • cadvisor: 收集docker容器信息
  • grafana:负责展示数据

Docker-Compose安装Prometheus

docker-compose.yml 配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
version: '3.7'

networks:
default:
external:
name: docker_compose_net

services:
prometheus:
image: prom/prometheus
container_name: prometheus
hostname: prometheus
restart: unless-stopped
volumes:
- /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- /opt/prometheus/node_down.yml:/etc/prometheus/node_down.yml
ports:
- "9990:9090"
environment:
- TZ=Asia/Shanghai # 时区配置亚洲上海

alertmanager:
image: prom/alertmanager
container_name: alertmanager
hostname: alertmanager
restart: unless-stopped
volumes:
- /opt/prometheus/alertmanager.yml:/etc/alertmanager/alertmanager.yml
- /opt/prometheus/alert-template/:/alertmanager/template/
ports:
- "9993:9093"
environment:
- TZ=Asia/Shanghai # 时区配置亚洲上海
阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 新建用户
useradd lims

# 给用户设置密码
passwd lims

# 设置相应的文件夹的用户名和用户组
chown -R lims:lims /opt/nginx/www

# 给文件夹赋权
chmod -R 777 /opt/nginx/www

# 查看目录的所属者和操作权限
ls -la /opt/nginx/www

# 到 sudoers 文件中增加新的用户,否则无法使用 sudo 命令
vim /etc/sudoers ====> 增加一行与 ROOT 相同的配置,然后输入 wq! 强制退出

语法

1
2
unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>]
[.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z]

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
-f 更新现有的文件。
-l 显示压缩文件内所包含的文件。
-p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
-t 检查压缩文件是否正确。
-u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 执行时显示详细的信息。
-z 仅显示压缩文件的备注文字。
-a 对文本文件进行必要的字符转换。
-b 不要对文本文件进行字符转换。
-C 压缩文件中的文件名称区分大小写。
-j 不处理压缩文件中原有的目录路径。
-L 将压缩文件中的全部文件名改为小写。
-M 将输出结果送到more程序处理。
-n 解压缩时不要覆盖原有的文件。
-o 不必先询问用户,unzip执行后覆盖原有文件。
-P<密码> 使用zip的密码选项。
-q 执行时不显示任何信息。
-s 将文件名中的空白字符转换为底线字符。
-V 保留VMS的文件版本信息。
-X 解压缩时同时回存文件原来的UID/GID。
[.zip文件] 指定.zip压缩文件。
[文件] 指定要处理.zip压缩文件中的哪些文件。
-d<目录> 指定文件解压缩后所要存储的目录。
-x<文件> 指定不要处理.zip压缩文件中的哪些文件。
-Z unzip -Z等于执行zipinfo指令。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 查看压缩文件中包含的文件
unzip -l abc.zip

# 查看压缩文件目录信息,但是不解压该文件
unzip -v abc.zip

# 解压一个zip格式压缩包
unzip file1.zip

# 压缩文件text.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令不覆盖原先的文件。
unzip -n test.zip -d /tmp

# #将压缩文件test.zip在指定目录/tmp下解压缩,如果已有相同的文件存在,要求unzip命令覆盖原先的文件。
unzip -o test.zip -d /tmp

参考:

Linux unzip命令

语法

1
2
zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>]
[-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>]

参数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
-A 调整可执行的自动解压缩文件。
-b<工作目录> 指定暂时存放文件的目录。
-c 替每个被压缩的文件加上注释。
-d 从压缩文件内删除指定的文件。
-D 压缩文件内不建立目录名称。
-f 更新现有的文件。
-F 尝试修复已损坏的压缩文件。
-g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。
-h 在线帮助。
-i<范本样式> 只压缩符合条件的文件。
-j 只保存文件名称及其内容,而不存放任何目录名称。
-J 删除压缩文件前面不必要的数据。
-k 使用MS-DOS兼容格式的文件名称。
-l 压缩文件时,把LF字符置换成LF+CR字符。
-ll 压缩文件时,把LF+CR字符置换成LF字符。
-L 显示版权信息。
-m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。
-n<字尾字符串> 不压缩具有特定字尾字符串的文件。
-o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。
-q 不显示指令执行过程。
-r 递归处理,将指定目录下的所有文件和子目录一并处理。
-S 包含系统和隐藏文件。
-t<日期时间> 把压缩文件的日期设成指定的日期。
-T 检查备份文件内的每个文件是否正确无误。
-u 与 -f 参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
-v 显示指令执行过程或显示版本信息。
-V 保存VMS操作系统的文件属性。
-w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。
-x<范本样式> 压缩时排除符合条件的文件。
-X 不保存额外的文件属性。
-y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。
-z 替压缩文件加上注释。
-$ 保存第一个被压缩文件所在磁盘的卷册名称。
-<压缩效率> 压缩效率是一个介于1-9的数值。

实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
zip -q -r html.zip /home/html

# 如果在我们在 /home/html 目录下,可以执行以下命令:
zip -q -r html.zip *

# 从压缩文件 cp.zip 中删除文件 a.c
zip -dv cp.zip a.c

# 创建一个zip格式的压缩包
zip file1.zip file1

# 将几个文件和目录同时压缩成一个zip格式的压缩包
zip -r file1.zip file1 file2 dir1

参考:

Linux zip命令

目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
├── dhparam.pem
├── fastcgi_params
├── logs
│ ├── access.log
│ ├── error.log
│ ├── limsweb.access.log
│ ├── limsweb.error.log
├── mime.types
├── nginx.conf
├── nginxconfig.io
│ ├── general.conf
│ ├── proxy.conf
│ └── security.conf
├── scgi_params
├── sites-enabled
│ └── limsweb.conf
├── ssl
│ ├── ilims.mylims.com.key
│ ├── ilims.mylims.com_bundle.crt
│ └── ilims.mylims.com_bundle.pem
├── uwsgi_params
└── www
└── limsweb
└── public

注意 general.conf 中需要注释掉 拦截 assets, media的配置:

1
2
3
4
# location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ {
# expires 7d;
# access_log off;
# }
阅读全文 »

Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。

Linux/Unix 是多人多工操作系统,所有的文件皆有拥有者。利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID,组可以是组名或者组 ID,文件是以空格分开的要改变权限的文件列表,支持通配符。 。

chown 需要超级用户 root 的权限才能执行此命令。

只有超级用户和属于组的文件所有者才能变更文件关联组。非超级用户如需要设置关联组可能需要使用 chgrp 命令。

语法

1
chown [-cfhvR] [--help] [--version] user[:group] file...

参数 :

user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示辅助说明
–version : 显示版本

实例

把 /var/run/httpd.pid 的所有者设置 root:

1
chown root /var/run/httpd.pid

将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :

1
chown runoob:runoobgroup file1.txt

将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:

1
chown -R runoob:runoobgroup *

把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:

1
chown :512 /home/runoob

参考:

Linux chown 命令

默认网络

docker-compose.yml中创建自定义网络的时候,默认的网段为172.*.*.*

使用自定义networks定义网络,docker-compose 会随机产生子网:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
version: "3"

services:
hangfire:
image: hangfire:0.0.10
restart: always
hostname: hangfire
container_name: hangfire
ports:
- "8100:80"
networks:
- net0
volumes:
- /etc/localtime:/etc/localtime
environment:
- adminConsole=true
env_file:
- ./var.env

networks:
net0:
阅读全文 »

查看Log文件名:选择数据库,属性,查看文件。

Snipaste_2022-10-12_14-23-46.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY SIMPLE --简单模式
GO
USE 要清理的数据库名称
GO

-- 注意log名称,需要使用文件逻辑名称
DBCC SHRINKFILE (N'要清理的数据库名称_log' , 2, TRUNCATEONLY) --设置压缩后的日志大小为2M,可以自行指定
GO
USE [master]
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 要清理的数据库名称 SET RECOVERY FULL --还原为完全模式
GO
0%