脚本清空Redis所有内容
redis服务经常因服务器内存不够用而自动死掉,需要经常连接进去做数据清理。
所以写了个脚本每天自动清理一遍。
脚本内容如下:
echo "flushall" | redis-cli -p 7000 -a 'password'
echo "flushall" | redis-cli -p 7001 -a 'password'
echo "flushall" | redis-cli -p 7002 -a 'password'
非root用户使用1024以下端口
以nginx为例。
1. 设置权限:
比如我的nginx安装在/home/java/nginx目录,
cd /home/java/nginx/sbin
setcap cap_net_bind_service=+eip nginx
看到nginx文件变成红色,说明设置成功。
2. 清除附加权限:
setcap -r [nginx启动命令路径]
3. 查看附加权限:
getcap [nginx启动命令路径]
解决cannot import name 'request_ctx'...
错误提示如下:
[root@localhost Flask-Admin-Dashboard]# /opt/python/bin/python3 app.py
Traceback (most recent call last):
File "/opt/Flask-Admin-Dashboard/app.py", line 5, in
from flask_security import Security, SQLAlchemyUserDatastore, \
File "/opt/python/lib/python3.11/site-packages/flask_security/__init__.py", line 13, in
from .core import Security, RoleMixin, UserMixin, AnonymousUser, current_user
File "/opt/python/lib/python3.11/site-packages/flask_security/core.py", line 18, in
from flask_babelex import Domain
File "/opt/python/lib/python3.11/site-packages/flask_babelex/__init__.py", line 20, in
from flask import request_ctx
ImportError: cannot import name 'request_ctx' from 'flask' (/opt/python/lib/python3.11/site-packages/flask/__init__.py)
错误的原因是因为Flask版本太高了。
问题解决:
#卸载原有Flask
pip3 uninstall Flask
#安装旧版本Flask
pip3 install Flask=2.2.5
问题解决。
Nginx: proxy_set_header与add_header区别
proxy_set_header
1 )概述
proxy_set_header 和 add_header 是 Nginx 配置中两个不同的指令, 它们各自有不同的用途。
proxy_set_header 指令用于修改转发到代理服务器(通常是后端应用服务器)的 HTTP 请求头。
它允许您设置或覆盖请求头中的字段,以便后端服务器能够接收正确的信息或根据这些信息做出响应。
例如,有时可能会使用 proxy_set_header 来设置 Host 头,这样后端服务器就知道它正在为哪个域名提供服务。
有时候,还可以设置 X-Real-IP 和 X-Forwarded-For 头来传递客户端的真实 IP 地址和请求链中的代理信息。
2 ) 示例
location / {
proxy_pass http://backend_servers;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
add_header
1 ) 概述
add_header 指令用于向 Nginx 发出的 HTTP 响应中添加或覆盖响应头字段。
这通常用于添加自定义的头部信息,如跨域资源共享(CORS)的头部,或者为响应添加安全相关的头部(如 X-Content-Type-Options)。
2 ) 示例
location / {
# ... 其他配置 ...
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options DENY;
add_header X-XSS-Protection "1; mode=block";
}
两者区别:
方向:proxy_set_header...
oracle处理阻塞与死锁
1. 死锁处理
1.1. 建立触发器
登录oracle的dba权限用户,然后执行以下SQL:
create or replace trigger login_on_record_ip
after logon on database
begin
dbms_application_info.set_client_info(sys_context('userenv', 'ip_address'));
end;
1.2. 查询锁死
select username,lockwait,status,machine,program,logon_time,CLIENT_INFO from v$session
where sid in
(select session_id from v$locked_object);
Username:死锁语句所用的数据库用户
Lockwait:死锁的状态
Status: 状态,active表示被死锁
Machine: 死锁语句所在的机器
Program: 产生死锁的语句主要来自哪个应用程序
logon_time:登录时间
CLIENT_INFO:客户端登录IP
1.3. 查看死锁的语句
select sql_text from v$sql where hash_value in
(select sql_hash_value from v$session where sid in
(select session_id from v$locked_object));
1.4. 查找死锁的进程
SELECT s.username,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,
l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS
FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
1.5. 杀死死锁的进程
alter system kill session...
解决pip3安装mysqlclient报错
报错现象:
/usr/bin/ld: cannot find -lmysqlclient
collect2: error: ld returned 1 exit status
error: command '/usr/bin/gcc' failed with exit code 1
在开发和编译 MySQL 客户端程序时,有时候需要手动指定 MYSQLCLIENT_CFLAGS 和 MYSQLCLIENT_LDFLAGS 环境变量。这两个环境变量用于指定编译和链接 MySQL 客户端程序时使用的头文件和库文件路径。
export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql"
export MYSQLCLIENT_LDFLAGS="-L/usr/lib64/mysql -lmysqlclient"
如果mysql是yum安装的直接使用上面命令即可,如果是编译安装的,需要指向编译安装的目录。
然后重新安装mysqlclient即可。