在 macOS 中使用 cron 定时任务和 Linux 下略有区别。
首先在终端输入,查看服务是否运行:
sudo launchctl list | grep cron
输出结果:
- 0 com.vix.cron
接下来查看启动项的配置:
locate com.vix.cron
如果提示 database 不存在
WARNING: The locate database /var/db/locate.database does not exist.
To create the database, run the following command:
sudo launchc
iftop 简介iftop是实时流量监控工具,可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等。安装sudo apt install iftop
常用参数-i 指定需要检测的网卡, 如果有多个网络接口,则需要注意网络接口的选择,如:# iftop -i eth1
-B 将输出以 byte 为单位显示网卡流量,默认是 bit
-n 将输出的主机信息都通过 IP 显示,不进行 DNS 解析
-N 只显示连接端口号,不显示端口对应的服务名称
-F 显示特定网段的网卡进出流量 如: iftop -F 192.168.85.0/24
-h 帮助,显示参数信息
-p 以混杂模式运
Linux netstat 命令用于显示网络状态。-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服务状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
1. 列出所有端口 netstat -a 列出所有端口netstat -at 列出所有 tcp 端口netstat -au 列出所有 udp
阿里云内容安全 API 没有提供 Node.js 版的 SDK,可以参考一下第三方的 SDK 代码。HMAC-SHA1签名流程(默认)1.序列化请求头。按照以下方式,将所有以x-acs-开头的HTTP头拼接成字符串:抽取所有以x-acs-开头的HTTP头。对抽取出来的头按字典顺序排序。对每个HTTP头,按"HTTP头名称" + ":" + "HTTP头值" + "\n"拼接。2.序列化URI和query参数。按照uri + "?clientInfo=" + "ClientInfo的JSON字符串"方式拼接URI和clientInfo参数。说明 此处不需要URL编码。3.构建完整的待签名字符串。
使用阿里云对象存储的时候,私有的文件,生成一个授权key,就可以访问私有的文件。使用 Nginx 也可以开发出这种功能。比如,一个静态资源地址是 https://test.com/uploads/test.mp3,现在使用 Njs 可以做到无法使用这个链接直接访问,需要添加后面的加密字符串才能访问。https://test.com/uploads/test.mp3?key=3F3MVJbx-YCb5NTIpf2x77xtNmQxc-5yx_qMnginx.conf 配置文件添加:http {
...
### Njs 配置
js_path '/usr/local/nginx/conf/
在执行 top 命令:top - 14:13:38 up 10 days, 18:47, 1 user, load average: 0.09, 0.11, 0.08
Tasks: 104 total, 1 running, 103 sleeping, 0 stopped, 0 zombie
top命令中 load average 显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载是在特定时间间隔内,运行队列中的进程数。在Linux中,进程分为三种状态:阻塞的进程 blocked process、可运行的进程 runnable process、正在运行的进程 ru
统计指定某一天的PV数cat cn_net_javascript.access.log | sed -n '/22\/Jul\/2022/p' | wc -l
根据访问IP统计UVawk '{print $1}' cn_net_javascript.access.log | sort -n | uniq | wc -l
查看某一时间段的IP访问量(4-6点)grep "22/Jul/2022:0[4-6]" cn_net_javascript.access.log | awk '{print $1}' | sort | uniq -c| sort -nr | wc -l
grep "22/J
1 准备一个 1024 * 1024 的png图片,假设名字为 pic.png2 命令行 $ mkdir tmp.iconset,创建一个临时目录存放不同大小的图片3 把原图片转为不同大小的图片,并放入上面的临时目录# 全部拷贝到命令行回车执行,执行结束之后去tmp.iconset查看十张图片是否生成好sips -z 16 16 pic.png --out tmp.iconset/icon_16x16.png
sips -z 32 32 pic.png --out tmp.iconset/icon_16x16@2x.png
sips -z 32 32 pic.png -
njs 简介Nginx 是C语言开发的,很多人扩展 Nginx 的功能,并未使用 C 语言开发,更常见的是使用 Lua 扩展和定制 Nginx 服务。比较著名的是 OpenResty 使用 lua-nginx-module 模块运行 Lua 语言,并集成了大量精良的 Lua 库、第三方模块,可以方便地搭建能够处理超高并发、扩展性极高的 Web 服务。就像Atwood定律所描述一样,该来的又来了。现在最新版本的 Nginx 1.9.11+ 已经推出了 njs 模块,可以在 nginx 的配置中引入 JavaScript 脚本,从而实现一些更复杂的 nginx 配置功能。NJS 模块并不是运行一个
MacOS 不像 Linux 有 /etc/init.d/rc.local 以及 service 的方式可以自动启动。而是使用 plist 文件,文件里描述程序路径和启动参数,用户登录后就会启动这个程序,而且pkill进程以后,程序会自动重启。plist文件分布在:/System/Library/LaunchDaemons # 是用户未登陆前就启动的服务(守护进程)
/System/Library/LaunchAgents # 由Mac OS X为用户定义的任务项
/Library/LaunchDaemons # 由管理员定义的守护进程任务项
/Library/Launc
查看邮件# mail
删除邮件cat /dev/null /var/spool/mail/root
禁止系统启动邮件检查echo "unset MAILCHECK" /etc/profile
这样就再有邮件提示了
1,分区格式介绍GPT是一种新型磁盘模式,与我们常用的MBR磁盘相比更稳定,自纠错能力更强,一块磁盘上主分区数量不受(4个的)限制,支持大于2T的总容量及大于2T的分区。最后选择 MBR。2,创建MBR分区2.1 查看磁盘信息df -hl
fdisk -l
/dev/vda1 是我的系统盘,xvdb 或者 vdb 是数据盘2.2 运行以下命令对数据盘进行MBR分区。fdisk -u /dev/vdb
输入p查看数据盘的分区情况。输入n创建一个新分区。输入p选择分区类型为主分区。本示例中,直接按回车键,采用默认值2048。输入最后一个扇区编号,直接按回车键,采用默认值。输入p查看该数据盘的规划分
第一步,查看openssl 版本openssl version -a
openssl 1.0.1以上的版本支持 TLS1.2,openssl 1.1.1以上的版本支持 TLS1.3。openssl版本满足条件,如不满足,需要重新编译安装。第二步,检查所有虚拟主机,修改所有虚拟主机的 ssl_protocols SSLv2 SSLv3 TLSv1;
修改成ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
Nginx 多个虚拟主机中,如果有一个使用第一行配置,就会导致浏览器提示“用于加载此网站的连接使用的是 TLS 1.0 或 TLS 1.1,这两个 TLS 版本都已
一、通过openssl命令自建证书1、创建私钥:openssl genrsa -out server.key 1024
2、证书请求:openssl req -new -out server.csr -key server.key
3、自签署证书:openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
4、将证书变成浏览器支持的.p12格式openssl pkcs12 -export -clcerts -in server.crt -inkey server.key -out serve
1, 使用 htpasswd 生成 passfile 文件htpasswd 是 apache 实用工具的一部分,Nginx 的密码格式和 Apache 的一样。CentOS 下的生成方法:yum install -y httpd-tools # 安装
htpasswd -c -d /etc/nginx/pass_file username
Debian 下的生成方法:sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd admin
2,添加到 nginx 配置在 server 或者 local 下,添加
Nginx 会根据mime type告诉浏览器如何处理服务器返回的文件,是打开还是下载。默认的 default_type定义的是 default_type application/octet-stream;mime type 和文件扩展名的对应关系一般放在 mime.types这个文件里,然后用 include mime.types; 来加载mime.types文件里是用types指令来定义的文本:location /test {
default_type text/html;
return 200 'This is text!';
}
JSON:location /test
网站中图片过大无法正常显示,通常显示一半,就提示502错误了,Nginx 错误日志代理提示:2021/05/19 16:28:35 [crit] 10976#0: *13 open() "/nginx_dir/proxy_temp/2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 200.130.237.38, server: test.com, request: "GET /uploads/images/20210220/48a18881fa3b45781b512f2376c9bef
location 匹配~ #匹配一个正则表达式,区分大小写
~* #匹配一个正则表达式,不区分大小写
^~ #匹配普通字符,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= #进行普通字符精确匹配
@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files
演示:location = / {
# 只匹配"/"
}
location / {
# 匹配所有请求,长字符或者正则表达式会优先匹配
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并
MainRule例子:MainRule "str:--" "msg:mysql comment (--)" "mz:BODY|URL|ARGS|$HEADERS_VAR:Cookie" "s:$SQL:4" id:1007;
MainRule的匹配模式有:str:字符串
rx:正则表达式
d:libinj_xss:libinjection检测为xss
d:libinj_sql:libinjection检测为sql注入
”str:--”,代表匹配 -- 这个字符。"msg:mysql comment (--)" 用于描述规则。"mz:BODY|URL|ARGS|$HEADERS_VAR
1, rewrite 介绍rewrite是实现URL重写的关键指令,根据regex (正则表达式)部分内容,重定向到replacement,结尾是flag标记。rewrite 在 server 块中针对所有的请求,location 中则针对单个匹配路径的,还可以在 If 条件块中使用。基本语法:rewrite regex replacement [flag];
regex: 正则表达式语句进行规则匹配replacement: 将正则匹配的内容替换成replacementflag: last | break | redirect | permanentlast : 本条规则匹配完成后,继
所有标签