首页
统计
Search
1
MIUI13 Adb精简脚本
878 阅读
2
J3455群晖睿频问题解决
425 阅读
3
centos7.9 2009 误删python2.7,导致yum失效解决方法
336 阅读
4
渗透测试常用的浏览器插件
326 阅读
5
Win10 Webdav一键开启
275 阅读
默认分类
测试
破解软件
登录
Search
Skycyan
累计撰写
62
篇文章
累计收到
47
条评论
首页
栏目
默认分类
测试
破解软件
页面
统计
搜索到
62
篇与
的结果
2025-04-07
IDM6.42.29破解安装版
软件截图下载地址{cloud title="本地下载" type="default" url="https://skycyan.cn/usr/uploads/2025/04/162406275.rar" password=""/}
2025年04月07日
14 阅读
0 评论
0 点赞
2025-03-14
mysql/teledb备份脚本
#!/bin/bash # 设置shell有任何变量未定义或错误立即退出 set -eu # 参数配置区 # 数据库地址 DBHost=192.168.203.1 # 数据库用户名 DBUser=root # 数据库密码 DBPasswd=Skycyan.cn # 数据库端口 DBPort=3306 # 备份路径 backpath=/opt # 日志文件 LOG_FILE=log/db_back.log # 备份时最低磁盘空间要求(单位:GB) min_space=1 # 过滤的表前缀 PREFIX_FILE="prefix.ini" # 获取备份时间 date1=`date +%Y%m%d` mkdir -p log # 方法函数区 # 日志记录方法 log() { echo "[$(date '+%F %T')] $1" | tee -a $LOG_FILE } # 备份目录挂载点获取 get_mount_info() { local target_dir="$1" [[ -d "$target_dir" ]] || { log "错误:备份目录不存在 $target_dir" return 1 } df -P "$target_dir" | awk 'NR==2 {print $6,$4}' } # 磁盘空间检查 check_disk_space() { # 第一步:执行并检查命令 local output if ! output=$(get_mount_info "$backpath"); then log "磁盘检查失败,请检查备份路径是否存在" exit 1 fi read mount_point available_kb <<< $(get_mount_info "$backpath") local available_gb available_gb=$((available_kb / 1024 / 1024 )) log "挂载点检查: $mount_point" log "可用空间: ${available_gb}GB" if [[ $available_gb -lt $min_space ]];then log "ERROR:磁盘空间不足" exit 1 fi } # 数据库名称获取 get_dbs() { if [ ! -e "db_list" ];then log "首次运行" mysql -h"$DBHost" -P"$DBPort" -u"$DBUser" -p"$DBPasswd" -NBe \ "SELECT schema_name FROM information_schema.schemata WHERE schema_name NOT IN ('information_schema','mysql','performance_schema','sys')" > db_list fi } get_tables() { log "开始获取表名" mkdir -p tmp readarray -t DBList < "db_list" for DBName in ${DBList[@]};do log "开始获取$DBName库的表名列表" mysql -u$DBUser -p$DBPasswd --host=$DBHost --port=$DBPort -NBe "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='$DBName';" 2>&1 > tmp/$DBName\_table_list & done } # 全库备份模块 db_back() { check_disk_space # 获取数据库名 get_dbs # 获取备份时间 date1=`date +%Y%m%d` # 创建每日文件夹 mkdir -p $backpath/db/$date1 declare -a DBList readarray -t DBList < "db_list" # 确保权限 chmod -R 766 $backpath/db/$date1 for DBName in ${DBList[@]}; do log "开始备份 $DBName" set +eu mysqldump -u$DBUser -p$DBPasswd --host=$DBHost --port=$DBPort --skip-lock-tables --single-transaction $DBName >$backpath/db/$date1/$DBName.sql 2>&1 & pid1=$! log "数据库后台备份进程PID:$pid1" wait $pid1 backup_status=$? if [[ $backup_status -ne 0 ]]; then log "错误:$DBName 备份失败!" else log "$DBName 备份成功" fi done # 恢复错误退出 set -eu } db_structure() { check_disk_space # 获取数据库名 get_dbs # 获取备份时间 date1=`date +%Y%m%d` # 创建每日文件夹 mkdir -p $backpath/structure/$date1 declare -a DBList readarray -t DBList < "db_list" # 确保权限 chmod -R 766 $backpath/structure/$date1 for DBName in ${DBList[@]}; do log "开始备份 $DBName" set +eu mysqldump -u$DBUser -p$DBPasswd --host=$DBHost --port=$DBPort --no-data --skip-lock-tables --single-transaction $DBName >$backpath/structure/$date1/$DBName.sql 2>&1 & pid1=$! log "数据库后台备份进程PID:$pid1" wait $pid1 backup_status=$? if [[ $backup_status -ne 0 ]]; then log "错误:$DBName 备份失败!" else log "$DBName 备份成功" fi done # 恢复错误退出 set -eu } # 备份文件清理 clean_old_backups() { local backup_type="$1" local retain_days="$2" local backup_dir="$backpath/$backup_type" [[ ! -d "$backup_dir" ]] && return log "清理 $backup_dir 中超过 ${retain_days} 天的备份..." find "$backup_dir" -type f -name "*.sql" -mtime +"$retain_days" -exec rm -fv {} \; | while read -r file; do log "已删除: $file" done } tables_bak() { local retain_days="${1:-7}" check_disk_space # 获取数据库名 get_dbs # 获取数据表名 get_tables # 创建目录检查权限 mkdir -p $backpath/tables/$date1/ chmod 755 $backpath/tables/$date1/ declare -a DBList readarray -t DBList < "db_list" # 预加载过滤前缀(过滤空行和注释) declare -a filter_prefixes if [[ -f "${PREFIX_FILE}" ]]; then readarray -t filter_prefixes < <( grep -Ev '^[[:space:]]*($|#)' "${PREFIX_FILE}" # 过滤空行和注释 ) log "已加载过滤前缀: ${filter_prefixes[*]}" else log "错误:过滤文件 ${PREFIX_FILE} 不存在" return 1 fi # 并发控制参数 local max_jobs=4 current_jobs=0 for DBName in "${DBList[@]}"; do log "===== 处理数据库: $DBName =====" declare -a TBList=() local table_list_file="tmp/${DBName}_table_list" # 文件存在性检查 if [[ ! -f "$table_list_file" ]]; then log "错误:表列表文件 $table_list_file 不存在" continue fi readarray -t TBList < "$table_list_file" # 遍历表名 for TBName in "${TBList[@]}"; do local should_skip=false # 检查是否匹配任意前缀 for prefix in "${filter_prefixes[@]}"; do if [[ "$TBName" == "${prefix}"* ]]; then # 严格前缀匹配 log "跳过 $DBName.$TBName(匹配前缀: $prefix)" should_skip=true break fi done # 仅在不匹配时备份 if [[ "$should_skip" != "true" ]]; then # 启动备份任务 mysqldump -u"$DBUser" -p"$DBPasswd" \ --host="$DBHost" \ --port="$DBPort" \ --skip-lock-tables \ --single-transaction \ "$DBName" "$TBName" \ > "$backpath/tables/$date1/$DBName.$TBName.sql" 2>/dev/null & local pid=$! log "启动备份 $DBName.$TBName (PID: $pid)" wait $pid fi done done log "所有备份任务已完成" clean_old_backups "tables" "$retain_days" } del() { echo $2 } # 主方法,通过参数判断备份类型 main() { local action="${1:-}" local retain_days="${2:-7}" # 默认保留7天 # 参数校验 if ! [[ "$retain_days" =~ ^[0-9]+$ ]]; then log "错误:保留天数必须为整数" show_usage exit 1 fi case "$action" in -d) db_back "$retain_days" ;; -t) tables_bak "$retain_days" ;; -s) db_structure "$retain_days" ;; help|--help|-h) show_usage ;; *) show_usage; exit 1 ;; esac } # 专用帮助信息函数 show_usage() { echo -e "------------------------------------------------------------" echo -e "\tAuthor DHD\t\t2025-03-13" echo -e "\t使用方法: sh ${0##*/} [参数]" echo -e "------------------------------------------------------------" echo -e "参数1:\t备份模式" echo -e "-d\t全库备份\t自动识别业务库,自动跳过系统默认表,自动判断空间" echo -e "-t\t全表备份\t自动识别业务表,按照 prefix.ini 进行表头过滤" echo -e "-s\t表结构备份\t按库名分割存储" echo -e "参数2:\t备份数据保留时间,单位:天" echo -e "参数:help\t帮助\t显示本帮助信息" } # 程序入口 main "$@"
2025年03月14日
12 阅读
0 评论
0 点赞
2025-02-26
WinRAR 烈火汉化版
WinRAR-6.24-Final-x64-烈火汉化版密码管理器界面清爽支持格式多{cloud title="" type="default" url="http://my.skycyan.cn:5244/d/%E7%BD%91%E7%AB%99%E5%85%B1%E4%BA%AB/20250226/WinRAR-6.24-Final-x64-%E7%83%88%E7%81%AB%E6%B1%89%E5%8C%96%E7%89%88.exe?sign=OmqepXv4vj3qcON8hbVzOcCjSOPWf5_rd7OdwKQYBcs=:0" password=""/}
2025年02月26日
22 阅读
0 评论
1 点赞
2025-02-24
windows 路由管理GUI
windows 路由管理GUI{cloud title="点此下载" type="default" url="https://skycyan.cn/usr/uploads/2025/02/3589496940.zip" password=""/}
2025年02月24日
18 阅读
0 评论
0 点赞
2025-01-10
# 防火墙配置手册
防火墙配置手册 防火墙种类和区别 Iptables介绍 CentOS6及之前系统使用iptables作为防火墙。iptables防火墙类型为静态防火墙,主要是基于接口,来设置规则,从而判断网络的安全性。 CentOS7中可能并没还有自带iptables,需要手动安装 yum安装 yum install iptables-services RPM安装 shell 查看运行状态:service iptables status Firewalld介绍 CentOS7以后使用Firewall作为防火墙。Firewalld防火墙类型为动态防火墙,是基于区域,根据不同的区域来设置不同的规则,从而保证网络的安全。 查看运行状态:firewall-cmd --state 匹配顺序 iptables简单配置 生产环境一般设置INPUT链默认拒绝 iptables -P INPUT DROP iptables 基本语法结构 iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 下面是一个列子 iptables -t filter -A INPUT [此处是对应的匹配规则] -j ACCEPT -t:指定需要维护的防火墙规则表 filter、nat、mangle或raw。在不使用 -t 时则默认使用 filter 表。 表名详解:点此跳转 选项详解:点此跳转 链名详解:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING、PREROUTING 条件:点此跳转 触发动作 功 能 ACCEPT 允许数据包通过 DROP 丢弃数据包 REJECT 拒绝数据包通过 LOG 将数据包信息记录 syslog 曰志 DNAT 目标地址转换 SNAT 源地址转换 MASQUERADE 地址欺骗 REDIRECT 重定向 ACCEPT策略下,需要最后面有一条拒绝所有的配置,不然防火墙只是一个摆设。 iptables -A INPUT -j REJECT -m comment --comment "默认拒绝所有" iptables -I INPUT 1 -p tcp --dport 23 -j ACCEPT -m comment --comment "放行23端口" iptables -I INPUT 1 -p tcp -s 192.168.11.1 -j ACCEPT -m comment --comment "放行192.168.11.1" iptables -I INPUT 1 -p tcp -s 192.168.11.1 --dport 23 -j ACCEPT -m comment --comment "放行192.168.11.1访问23端口" iptables -I INPUT 1 -p tcp -m iprange --src-range 135.32.103.248-135.32.103.255 -j ACCEPT -m comment --comment "放行同段访问端口" 常用查询 # 查看规则并显示行号 iptables -nL --line-number # 保存规则 iptables-save 命令参数查询 COMMAND: 参数 含义 -A 添加防火墙规则 -D 删除防火墙规则 -I 插入防火墙规则 -F 清空防火墙规则 -L 列出添加防火墙规则 -R 替换防火墙规则 -Z 清空防火墙数据表统计信息 -P 设置链默认规则 表名具体含义 表名 功能含义 filter 过滤数据包 Nat 用于网络地址转换(IP、端口) Mangle 修改数据包的服务类型、TTL、并且可以配置路由实现QOS Raw 决定数据包是否被状态跟踪机制处理 已存在业务的防火墙规则添加 ## 放行已建立的连接和数据包 sudo iptables -I INPUT 1 -m state --state ESTABLISHED,RELATED -j ACCEPT # 修复ICMP timestamp请求响应漏洞 sudo iptables -A INPUT -p icmp --icmp-type timestamp-request -j DROP sudo iptables -A OUTPUT -p icmp --icmp-type timestamp-reply -j DROP 设置默认规则 # 默认允许 sudo iptables -P INPUT ACCEPT # 默认拒绝 sudo iptables -A INPUT -j REJECT --reject-with icmp-host-unreachable #拒绝并返回Destination Unreachable的ICMP错误消息 sudo iptables -P INPUT -j DROP firewalld简单配置 firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.108" accept" 放行服务/端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload
2025年01月10日
25 阅读
0 评论
0 点赞
2025-01-10
无标题 (6)
2025年01月10日
21 阅读
0 评论
0 点赞
2025-01-10
无标题 (4)
dqopjdpoqwdop wiq[d[q[pd[kp
2025年01月10日
42 阅读
0 评论
0 点赞
2025-01-10
无标题
无标题 openssh 源文件下载 https://cloudflare.cdn.openbsd.org/pub/OpenBSD/OpenSSH/ 编译安装准备
2025年01月10日
45 阅读
0 评论
0 点赞
2024-12-09
Jellyfin插件备份
cd /volume1/@appdata/Jellyfin/data
2024年12月09日
46 阅读
0 评论
0 点赞
2024-11-17
FRP内网穿透后群晖获取真实地址
问题描述基本思路利用FRP的 Proxy Protocol 协议来传递经过真实 IPfrp 支持通过 Proxy Protocol 协议来传递经过 frp 代理的请求的真实 IP利用群晖自带的Nginx反向代理内部服务群晖的nginx的用户自定义配置文件路径在/etc/nginx/conf.d/目录下,并以http.*.conf格式命名server { # 监听IPv4,并开启Proxy Protocol协议 listen 5501 ssl proxy_protocol; # 监听IPv6,并开启Proxy Protocol协议 listen [::]:5501 ssl proxy_protocol; # 监听的域名,你解析给云服务器的域名 server_name ds.home.com; # 排除Cloudflare CDN的IP # 如果你有使用到CDN的服务的话,一般NAS不会使用到此类IP # 仅供参考,自行配置 set_real_ip_from 173.245.48.0/20; # 排除本地IP,请根据你的具体情况配置 set_real_ip_from 192.168.0.0/16; set_real_ip_from 10.0.0.0/8; # 排除服务器IP set_real_ip_from 1.1.1.1/32; # 真实IP使用proxy_protocol协议 real_ip_header proxy_protocol; # 开启排除IP功能 real_ip_recursive on; proxy_headers_hash_max_size 512; proxy_headers_hash_bucket_size 128; # 反向代理 location / { # 目标地址,群晖默认HTTPS地址为5001,请根据实际情况调整 proxy_pass https://localhost:5001; # 兼容http proxy_set_header Upgrade-Insecure-Requests 1; # 告诉后端使用ssl proxy_ssl_server_name on; # 客户端使用的http协议 proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Scheme $scheme; # 客户端host proxy_set_header Host $host; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-Host $http_host; # 完整URI proxy_set_header X-Original-URI $request_uri; # 客户端使用的端口 proxy_set_header X-Real-Port $proxy_protocol_port; # 多层代理IP proxy_set_header X-Forwarded-For $proxy_protocol_addr; # 客户端IP,群晖默认会通过X-Real-IP获取用户IP proxy_set_header X-Real-IP $proxy_protocol_addr; # 支持Websocket # 如果你使用诸如Docker bash此类的功能,则需要开启Websocket proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection Upgrade; proxy_connect_timeout 60s; proxy_read_timeout 60s; proxy_send_timeout 12s; # 配置文件来自https://www.alainlam.cn/?p=403 } } 检查Nginx配置文件重启nginxsystemctl restart nginx
2024年11月17日
62 阅读
0 评论
0 点赞
1
2
...
7