无    2023-03-31 11:38:40    12    0    0

SQL Command

title

mysql数据库权限位

下表说明了可用于GRANTREVOKE语句的所有可用权限:

权限 含义 全局 数据库 过程 代理
ALL [PRIVILEGES] 授予除了GRANT OPTION之外的指定访问级别的所有权限
ALTER 允许用户使用ALTER TABLE语句 x x x
ALTER ROUTINE 允许用户更改或删除存储程序 x x x
CREATE 允许用户创建数据库和表 x x x
CREATE ROUTINE 允许使用创建存储例程(存储过程和函数)的语句。 x
CREATE TABLESPACE 允许用户创建,更改或删除表空间和日志文件组 x
CREATE TEMPORARY TABLES 允许用户使用CREATE TEMPORARY TABLE创建临时表 x x
CREATE USER 允许用户使用CREATE USERDROP USERRENAME USERREVOKE ALL PRIVILEGES语句。 x
CREATE VIEW 允许用户创建或修改视图 x x x
DELETE 允许用户使用DELETE x x x
DROP 允许用户删除数据库,表和视图 x x x
EVENT 能够使用事件计划的事件 x x
EXECUTE 允许用户执行存储过程/存储函数 x x
FILE 允许用户读取数据库目录中的任何文件 x
GRANT OPTION 允许用户有权授予或撤销其他帐户的权限 x x x x x
INDEX 允许用户创建或删除索引 x x x
INSERT 允许用户使用INSERT语句 x x x x
LOCK TABLES 允许用户在具有SELECT权限的表上使用LOCK TABLES x x
PROCESS 允许用户使用SHOW PROCESSLIST语句查看所有进程
无    2023-03-30 15:25:43    11    0    0

HTTP Status Codes

1xx - 信息

这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码,所以除非在某些试验条件下,服务器禁止向此类客户端发送1xx响应。这些状态码代表的响应都是信息性的,标示客户应该采取的其他行动。

Status Code Intro Explain
100 Continue 服务器已经接收到请求头,并且客户端应继续发送请求主体(在需要发送身体的请求的情况下:例如,POST请求),或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。要使服务器检查请求的头部,客户端必须在其初始请求中发送Expect: 100-continue作为头部,并在发送正文之前接收100 Continue状态代码。响应代码417期望失败表示请求不应继续。
101 Switching Protocols 服务器已经理解了客户端的请求,并将通过Upgrade消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后,服务器将会切换到在Upgrade消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。例如,切换到新的HTTP版本(如HTTP/2)比旧版本更有优势,或者切换到一个实时且同步的协议(如WebSocket)以传送利用此类特性的资源。
102 Processing WebDAV请求可能包含许多涉及文件操作的子请求,需要很长时间才能完成请求。该代码表示服务器已经收到并正在处理请求,但无响应可用。[6]这样可以防止客户端超时,并假设请求丢失。

2xx - 成功

这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。

Status Code Intro
无    2023-03-30 14:56:04    136    0    0

VPN技术对比

目前,VPN技术主要包括:PPTP、L2TP/IPSec、SSLVPN、OpenVPN和WebVPN几种,笔者通过表1对五种VPN进行对比。
title

PPTP、L2TP和IPSec

对网络要求很高,当运营商的网络存在地址转换设备时,将无法正常连接。目前,最常用的VPN技术主要为SSL VPN和WebVPN。

WebVPN

提供基于Web的内网应用访问控制,允许授权用户访问只对内网开放的Web应用,实现类似VPN的功能。区别于传统VPN技术,WebVPN无需用户做任何配置或安装客户端软件及浏览器插件,直接在网页上通过身份验证即可进入内网应用,大大降低了使用门槛,提升了用户体验感。但是,WebVPN只适用于采用B/S架构的Web浏览器的应用,而对C/S架构的客户端和移动端的应用无法支持。

SSL VPN

是以SSL协议为安全基础的VPN远程接入技术。远程用户使用SSLVPN可以安全方便地接入内网,访问内网资源;无需安装额外软件,直接使用浏览器访问内网Web资源,也可以通过安装浏览器插件,访问其他非Web资源;SSL VPN既支持全局流量,也支持局部流量,根据不同用户的身份,分配不同的访问权限,实现精细控制。

OpenVPN

作为一个开源软件,就是一个典型的SSL VPN应用,使用的是工业标准的SSL/TLS协议。OpenVPN不是一个基于Web代理的应用,也不是基于浏览器访问,而是需要安装专门的客户端,其客户端可以支持当前所有主流终端类型。

无    2023-03-29 10:40:42    40    0    0
无    2023-03-29 10:40:39    76    0    0

视频讲解参考



检查

检查越充分,医生对于病情的分析也越准确,此步骤必不可少,并且患者及其家属害怕可能出现的误诊,会选择到更权威的医院再做其中的一些项目以充分论证其准确性。

日常检查

CT, B超,查血、大小便等

病理分析

用以检查机体器官、组织或细胞中的病理改变的病理形态学方法。为探讨器官、组织或细胞所发生的疾病过程,可采用某种病理形态学检查的方法,检查他们所发生的病变 ,探讨病变产生的原因、发病机理、病变的发生发展过程,最后做出病理诊断。病理形态学的检查方法,首先观察大体标本的病理改变,然后切取一定大小的病变组织,用病理组织学方法制成病理切片,用显微镜进一步检查病变。

对于癌症,我们都知道病理学的重要性,因为病理诊断更是决定了疾病的分类与医生治疗的方针,但是当然病理报告因为一些意外的情况导致病理报告有误,像是切片检体太小,根本无从判断,或者根本没有切到病诏等等因素,导致判断错误。因此在评估病人的状况时候,必须考虑到病史、理学检查、血液生化检查、影像学检查等等做个综合判断的评估。

病理切片分析一般在5天~10天左右出结果。

病理切片

取一定大小的病变组织,用病理组织学方法制成病理切片〔通常将病变组织包埋在石蜡块里,用切片机切成薄片,再用苏木精-伊红(H-E)染色〕,用显微镜进一步检查病变。病变的发生发展过程,最后作出病理诊断。

  1. 组织固定(与组织体积正相关,一般24-48小时)
  2. 组织脱水(最佳脱水时间主要取决于组织的大小和类型来决定)
  3. 组织包埋
  4. 组织切片及捞片
  5. 烤片(45分钟~1小时)
  6. 脱蜡及
无    2023-03-24 12:29:11    6    0    0
  1. #定义Nginx运行的用户和用户组
  2. user www www;
  3. #nginx进程数,通常设置成和cpu的数量相等
  4. worker_processes 4;
  5. #全局错误日志定义类型,[debug | info | notice | warn | error | crit]
  6. #error_log /data/nginx/logs/error.log;
  7. #error_log /data/nginx/logs/error.log notice;
  8. #日志文件存放路径 access_log path [format [buffer=size | off]]
  9. access_log /data/nginx/logs/lazyegg.com/web/access.log combinedio;
  10. #进程pid文件
  11. #pid logs/nginx.pid;
  12. #指定进程可以打开的最大描述符:数目
  13. #工作模式与连接数上限
  14. ##这个指令是指当一个nginx进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx进程数相除,但是nginx分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。
  15. #这是因为nginx调度时分配请求到进程并不是那么的均衡,所以假如填写10240,总并发量达到3-4万时就有进程可能超过10240了,这时会返回502错误。
  16. worker_rlimit_nofile 65535;
  17. ################################# events ###############################
  18. events {
  19. #参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型
  20. use epoll
  21. #单个进程最大连接数(最大连接数=连接数+进程数)
  22. worker_connections 1024;
  23. #keepalive 超时时间
  24. keepalive_timeout 60;
  25. #客户端请求头部的缓冲区大小。
  26. client_header_buffer_siz
无    2023-03-21 17:26:39    138    0    0

CoreOS 默认 logrotate问题

默认的logrotatedaily的,在/usr/下是无法更改的,故只能停止了默认logrotate timer,然后新建新的timer来改变logrotate的周期

  1. systemctl stop logrotate.timer
  1. $ cat /usr/lib/systemd/system/logrotate.service
  2. [Unit]
  3. Description=Rotate and Compress System Logs
  4. [Service]
  5. ExecStart=/usr/sbin/logrotate /usr/share/logrotate/logrotate.conf
  1. $ cat /usr/lib/systemd/system/logrotate.timer
  2. [Unit]
  3. Description=Daily Log Rotation
  4. [Timer]
  5. OnCalendar=daily
  6. AccuracySec=1h
  7. Persistent=true

演练配置

  1. logrotate -d /etc/logrotate.d/test
  1. $ logrotate --help
  2. Usage: logrotate [OPTION...] <configfile>
  3. -d, --debug Don't do anything, just test (implies -v)
  4. -f, --force Force file rotation
  5. -m, --mail=command Command to send mail (instead of `/bin/mail')
  6. -s, --state=statefile Path of state file
  7. -v, --verbose
无    2023-03-21 16:02:57    15    0    0

报错

  1. $ go mod tidy
  2. fatal: unable to access 'https://gogs.xxx.com/xxx/xxx.git/': Peer's Certificate issuer is not recognized

原因

gogs 实际用的yyy.so,通过nginx做了转发访问xxx.com会转发到yyy.so,但是用户在GET页面时yyy.so会被替换成xxx.com(实际内容是未变的,只是页面返回被修改了),猜测可能是转发上有某些问题

  1. server {
  2. listen 80;
  3. listen 443 ssl;
  4. server_name gogs.xxx.com; ## 域名,根据自己实际情况填写
  5. error_log /data/logs/nginx/gogs.xxx.com/error.log;
  6. access_log /data/logs/nginx/gogs.xxx.com/access.log;
  7. client_max_body_size 50m;
  8. ssl_certificate "tls/xxx.com.pem";
  9. ssl_certificate_key "tls/xxx.com.key";
  10. location / {
  11. #set $vhost "gogs.yyy.so";
  12. proxy_set_header Host $host;
  13. add_header Access-Control-Allow-Origin *;
  14. add_header Access-Control-Allow-Headers X-Requested-With;
  15. add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
  16. proxy_pass http://127.0.0.1:3000/; ## gogs默认服务端口为3000
  17. #proxy_redirect ~^https://([^:]
无    2023-03-06 11:07:56    8    0    0

Consul简述

Consul服务网格(service mesh)的一种解决方案,Consul是有服务发现,配置和分段 功能的全功能控制平面。这些功能可以根据需要单独使用,也可以一起使用以构建完整的服务网格。Consul需要一个数据平面,并支持代理和本机集成模型。Consul附带了一个简单的内置代理,因此开箱即用,但也支持Envoy等第三方代理集成。
Consul其实解决了运行微服务和云原生基础架构的网络和安全挑战。Consul提供了一种云原生的软件驱动路由和分段方法。它还带来了其他好处,比如故障处理,重试和网络可观察。
上面说到了服务网格和数据平面,服务网格通常是和微服务在一起说的服务网格,数据平面很好理解就是软件和服务架构中处理数据请求的那层,相比之下,控制平面就是配置和关闭数据平面的软件部分,这里Consul就起到了控制平面的作用。

Consul的主要特点有以下:

服务发现

Consul的客户端可以注册服务,例如api或mysql,客户端可以使用Consul来发现已注册的服务。使用DNS或HTTP,应用程序可以轻松找到它们依赖的服务。

健康检测

Consul客户端可以提供任何数量的运行状况检查,这些检查可以与给定服务(“ Web服务器是否返回200 OK”)或本地节点(“内存利用率低于90%”)相关。你可以使用此信息来监视群集的运行状况,服务发现组件可以使用这些信息将流量从不正常的主机转移走。

KV存储

你应用程序可以将Consul的分层 键/值 存储用于多种目的,不限于 动态配置,功能标记,协调,集群leader选举等等。Consul提供的简单HTTP API使其非常易于使用。

安全的服务通信

Consul可以为服务生成和分发TLS证书然后建立相互的TLS连接。意图 用于定义允许哪些服务进行通信。可以实时更改意图轻松管理服务分段,而不使用复杂的网络拓扑和静态防火墙规则。

多数据中心

Consul开箱即用地支持多个数据中心。这意味着Consul的用户不必担心会构建其他抽象层以扩展到多个区域
Consul的设计对DevOps社区和应用程序开发人员非常友好,使其非常适合现代,灵活的基础架构。

无    2023-02-24 15:51:04    30    0    0

1.0 前言

  话说有一名意大利程序员,在 2004 年到 2006 年间主要做嵌入式工作,之后接触了 Web,2007 年和朋友共同创建了一个网站,并为了解决这个网站的负载问题(为了避免 MySQL 的低性能),于是亲自定做一个数据库,并于 2009 年开发完成,这个就是 Redis。这个意大利程序员就是 Salvatore Sanfilippo 江湖人称 Redis 之父,大家更习惯称呼他 Antirez。

  Redis 技术越来越火爆,其超高的性能,简洁轻量的设计,易上手,分布式架构的支持,在缓存等领域出色的表现造就了它现在的地位。

  官方的 Benchmark 数据:测试完成了 50 个并发执行 10W 个请求。设置和获取的值是一个 256 字节字符串。

  结果:读的速度是 110000次/s,写的速度是 81000次/s。值得注意的是,该测试结果还是早些年旧机器上的测试结果。如果与今天的机器设备相比,预估可能是以下结果的两倍。
  

  1. $ redis-benchmark -n 100000
  2. ====== SET ======
  3. 100007 requests completed in 0.88 seconds
  4. 50 parallel clients
  5. 3 bytes payload
  6. keep alive: 1
  7. 58.50% <= 0 milliseconds
  8. 99.17% <= 1 milliseconds
  9. 99.58% <= 2 milliseconds
  10. 99.85% <= 3 milliseconds
  11. 99.90% <= 6 milliseconds
  12. 100.00% <= 9 milliseconds
  13. 114293.71 requests per sec
9/14