首页
Linux常用命令
docker常用命令
关于
Search
1
UNRAID增加和缩小虚拟机虚拟磁盘大小
22 阅读
2
docker安装MDCX
18 阅读
3
unraid添加iSCSI 发起程序
8 阅读
4
虚拟机OVA格式转换QCWO2&RAW
3 阅读
5
Ubuntu初始设置
3 阅读
默认分类
docker
容器安装
Linux
群辉
软路由
Unraid
PVE
Nginx
wow
杂项
图床
飞牛
登录
Search
标签搜索
nginx
unraid
PVE
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
Linux
sftp
防火墙
奥黛丽·逐爱者
累计撰写
69
篇文章
累计收到
8
条评论
首页
栏目
默认分类
docker
容器安装
Linux
群辉
软路由
Unraid
PVE
Nginx
wow
杂项
图床
飞牛
页面
Linux常用命令
docker常用命令
关于
搜索到
18
篇与
默认分类
的结果
2024-09-14
飞牛开机virtiofs挂载
此操作前提是虚拟机创建的时候建立了VirtIOFS模式比如挂载标签: clouddrive 我把它挂到飞牛的 /vol1/1000/mount 目录试了4种方法,1、使用rc.local。2、使用systemd服务。3、使用cron4、使用init.d脚本。反复了3回 将近15次,查日志反馈大意是挂载目录/vol1/1000/mount不存在。最后估计该系统重启过程中,系统的服务走在系统挂载磁盘前面。所以就有了以下的延迟操作,这4个里就crontab最简单。以后如果设置了开机执行某写挂盘服务,最好延迟启动。ssh命令是:mount -t virtiofs clouddrive /vol1/1000/mount开机启动方法也简单,分两个步骤一,是建立运行脚本我在root目录建立 qidongvirtiofs.sh脚本nano /root/qidongvirtiofs.sh填入以下内容后保存退出#!/bin/bash mount -t virtiofs clouddrive /vol1/1000/mount sysctl -p eexit 0赋予qidongvirtiofs.sh权限:chmod +x /root/qidongvirtiofs.sh二,是使用crontab添加一个定时任务。虽然cron通常用于定时任务,但你可以设置它在系统启动时运行脚本。编辑 crontab 文件:crontab -e添加一行来指定延迟时间并运行脚本:@reboot sleep 300 && /bin/bash /root/qidongvirtiofs.sh这里 300 是延迟的秒数,可以根据需要调整。保存并退出编辑器。重启系统来测试配置是否有效。
2024年09月14日
1 阅读
0 评论
0 点赞
2024-08-23
Windows下openssl转换pem为pfx证书给Tomcat使用
环境使用Windows server2008+nginx1.25.4+Tomcat9自动更新ssl工具较少,整整一年,win-acme工具总是失效。现使用lucky自动更新ssl证书,再映射到目录的功能结合openssl工具和脚本实现自动更新。一、使用lucky将证书映射到指定目录。 配置证书这一步省略了 配置好后映射到自己需要的目录二、使用脚本实现自动更新1.安装openssl 下载安装包 下载地址: openssl vps上还在使用好老的Windows2008,就下这个版本吧。 开始安装 下一步 下一步 不捐款就不勾了吧 安装完成后配置环境:控制面板-所有控制面板项-系统点击“高级系统设置”环境变量编辑Path路径老系统是这样,新一点的系统是添加地址。在变量值里面结尾加 ;结尾符号再补上我们刚才安装的路径 ;C:\Program Files\OpenSSL-Win64\bin 最后运行CMD 输入 openssl version 显示版本表示OK成功。2.使用bat批处理转换ssl证书确定lucky映射的路径和pfx格式证书要放的路径和密码123456。以泛域名_baidu.com为例@echo off SETLOCAL :: 证书和私钥所在的目录 set SSL_DIR=D:\app\nginx\ssl :: 定义证书、私钥和PKCS#12文件的名称 set CERTIFICATE_NAME=_.baidu.com.pem set PRIVATE_KEY_NAME=_.baidu.com.key set PKCS12_NAME=_.baidu.com.pfx :: 完整的证书和私钥路径 set CERTIFICATE_PATH=%SSL_DIR%\%CERTIFICATE_NAME% set PRIVATE_KEY_PATH=%SSL_DIR%\%PRIVATE_KEY_NAME% :: 指定PKCS#12文件的输出目录 set PKCS12_DIR=D:\app\Tomcat9\ssl set PKCS12_PATH=%PKCS12_DIR%\%PKCS12_NAME% :: 检查证书和私钥是否存在 IF NOT EXIST "%CERTIFICATE_PATH%" ( ECHO Certificate file not found: %CERTIFICATE_PATH% EXIT /B ) IF NOT EXIST "%PRIVATE_KEY_PATH%" ( ECHO Private key file not found: %PRIVATE_KEY_PATH% EXIT /B ) :: 确保输出目录存在,如果不存在则创建 IF NOT EXIST "%PKCS12_DIR%" ( ECHO Output directory does not exist: %PKCS12_DIR% MKDIR "%PKCS12_DIR%" ) :: 使用OpenSSL导出PKCS#12文件,并设置密码 :: 此处设置PKCS#12文件的密码为123456 openssl pkcs12 -export -out "%PKCS12_PATH%" -inkey "%PRIVATE_KEY_PATH%" -in "%CERTIFICATE_PATH%" -passout pass:123456 :: 脚本结束 ENDLOCAL
2024年08月23日
1 阅读
0 评论
0 点赞
2024-05-14
AB目录同步问题
需求:从A目录复制数据到B目录,记录复制过的文件并生成详细日志,以后再次执行该脚本就算B目录下的文件被清空,已同步过的文件也不会再次复制。直接使用bat命令——失败Linux使用rsync——没成功问了ChatGPT要使用这个Python脚本在Windows上从A目录复制数据到B目录,并记录已复制的文件以避免重复复制,请按以下步骤操作:步骤一:安装Python如果你还没有安装Python,请先从Python官方网站下载并安装Python。步骤二:创建脚本文件1、打开一个文本编辑器(如Notepad、Notepad++或VSCode)。 2、将以下脚本代码复制并粘贴到文本编辑器中。import os import shutil import hashlib # 定义本地目录A和目标目录B local_dir = r"C:\path\to\local\A" target_dir = r"C:\path\to\target\B" log_file = "synced_files.log" def calculate_file_hash(file_path): """计算文件的SHA-256哈希值""" sha256_hash = hashlib.sha256() with open(file_path, "rb") as f: for byte_block in iter(lambda: f.read(4096), b""): sha256_hash.update(byte_block) return sha256_hash.hexdigest() def load_synced_files(log_file): """加载已同步的文件列表""" if os.path.exists(log_file): with open(log_file, "r") as f: return set(line.strip() for line in f) return set() def log_synced_files(log_file, files): """记录已同步的文件列表""" with open(log_file, "a") as f: for file in files: f.write(f"{file}\n") def sync_files(local_dir, target_dir, log_file): """同步文件到目标目录,并记录已同步的文件""" # 加载已同步文件的列表 synced_files = load_synced_files(log_file) # 获取本地目录中所有文件 all_files = set() for root, _, files in os.walk(local_dir): for file in files: full_path = os.path.join(root, file) relative_path = os.path.relpath(full_path, local_dir) file_hash = calculate_file_hash(full_path) all_files.add((relative_path, file_hash)) # 需要同步的文件 files_to_sync = {file for file in all_files if file[1] not in synced_files} # 如果没有需要同步的文件,直接返回 if not files_to_sync: print("没有新的文件需要同步。") return # 同步文件 for relative_path, file_hash in files_to_sync: source_file = os.path.join(local_dir, relative_path) target_file = os.path.join(target_dir, relative_path) target_dir_path = os.path.dirname(target_file) # 创建目标目录(如果不存在) os.makedirs(target_dir_path, exist_ok=True) # 复制文件 shutil.copy2(source_file, target_file) # 记录同步的文件 log_synced_files(log_file, [file_hash]) print(f"同步完成:{len(files_to_sync)} 个文件。") if __name__ == "__main__": sync_files(local_dir, target_dir, log_file)3、将此文件保存为sync_files.py(文件扩展名为.py)。步骤三:编辑脚本文件打开sync_files.py,编辑以下变量以匹配你的目录路径:local_dir = r"C:\path\to\local\A" # 替换为你的本地A目录路径 target_dir = r"C:\path\to\target\B" # 替换为你的目标B目录路径 log_file = "synced_files.log" # 日志文件的路径和名称步骤四:运行脚本1、打开命令提示符(可以通过按下Win + R,然后输入cmd并按回车键来打开)。 2、导航到包含sync_files.py文件的目录。例如,如果文件在桌面上,可以使用以下命令:cd C:\Users\YourName\Desktop3、运行脚本:python sync_files.py 结果脚本将从本地A目录复制文件到目标B目录,并记录已复制的文件的哈希值到synced_files.log。下次运行脚本时,它将跳过已记录的文件,避免重复复制,即使B目录中的文件被清空。注意事项确保你有足够的权限读取源目录和写入目标目录。如果脚本没有正确运行,检查目录路径是否正确,以及日志文件synced_files.log是否存在并具有写入权限。
2024年05月14日
1 阅读
0 评论
0 点赞
2024-04-28
银河麒麟服务器操作系统 V10 SP1 防火墙(firewalld)指令
一、Kylin系统查看firewalld状态systemctl status firewalld(或者:systemctl status firewalld.service,或者:systemctl is-active firewalld)Active: inactive (dead) 显示不活动/关闭二、开启、重启、关闭firewalld服务1、开启:systemctl start firewalld查看状态systemctl status firewalldactive(running):表示防火墙已经开启。2、关闭:systemctl stop firewalld查看状态systemctl status firewalld3、重启:systemctl restart firewalld查看状态systemctl status firewalld查询、开放、关闭firewalld端口1、查询全部已开放的端口:firewall-cmd --list-all2、查询某个端口是否开放:firewall-cmd --query-port=[端口]/tcp #yes表示已经开放,no表示没有开放。 [root@iZon201ihvpnoi2e3ftkphZ ~]# firewall-cmd --query-port=22/tcp no3、开放端口:firewall-cmd --permanent --add-port=[端口]/tcp #succes表示开方端口成功如果开放已经开放的端口会报错如下图:防火墙临时放行端口:firewall-cmd --add-port=8080/tcp4、关闭端口:firewall-cmd --permanent --remove-port=[端口]/tcp #success表示关闭成功。 [root@iZon201ihvpnoi2e3ftkphZ ~]# firewall-cmd --permanent --remove-port=18880/tcp success5、刷新服务(开放、关闭端口操作后需要刷新才能生效):firewall-cmd --reload #success表示刷新成功。设置、取消开机启动(firewalld)1、开机启动防火墙firewalld:systemctl enable firewalld2、开机关闭防火墙firewalld:systemctl disable firewalld3、查询是否开机启动firewalld:systemctl is-enabled firewalld #(enabled表示开机启动防火墙,disabled表示开机关闭防火墙)
2024年04月28日
0 阅读
0 评论
0 点赞
2024-04-26
docker安装mysql
{tabs}{tabs-pane label="mysql"}docker安装docker run -d -p 3306:3306 --privileged=true \ -v /mnt/user/appdata/mysql/log:/var/log/mysql \ -v /mnt/user/appdata/mysql/data:/var/lib/mysql \ -v /mnt/user/appdata/mysql/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=root \ --name mysql \ library/mysql:5.7{collapse}{collapse-item label="好像有误" open}docker run -d --restart=always --name 此处写名字 --network cloud --ip 此处写IP -p 3306:3306 -v /此处写安装路径:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=此处写密码 -d mysql:latest{/collapse-item}{/collapse}登到数据库docker exec -it mysql mysql -u root -p执行Mysql老五条初始化命令create database 此处写数据库名字; CREATE USER 此处写数据库用户名 IDENTIFIED BY '此处写数据库密码'; grant all on 此处写数据库名字.* to '此处写数据库用户名'@'%'; ALTER USER 此处写数据库用户名 IDENTIFIED WITH mysql_native_password BY '此处写数据库密码'; FLUSH PRIVILEGES;{/tabs-pane}{/tabs}
2024年04月26日
0 阅读
0 评论
0 点赞
1
2
...
4