首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
180 阅读
2
UNRAID增加和缩小虚拟机虚拟磁盘大小
49 阅读
3
unraid添加iSCSI 发起程序
39 阅读
4
iStoreOS上使用WireGuard
20 阅读
5
docker安装WireGuard Easy
13 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
Linux
sftp
防火墙
奥黛丽·逐爱者
累计撰写
100
篇文章
累计收到
10
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
26
篇与
默认分类
的结果
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日
4 阅读
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日
6 阅读
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日
1 阅读
0 评论
0 点赞
2024-04-23
SFTP远程文件传输使用方法
{tabs}{tabs-pane label="链接登入"}1、登陆命令: sftp ip (默认root用户) 或者 sftp 用户名@ipixjkj@ixjkj-standard-pc-i440fx-piix-1996-1:~$ sftp root@192.168.0.211 The authenticity of host '192.168.0.211 (192.168.0.211)' can't be established. ECDSA key fingerprint is SHA256:VMZa5fju7QcZnQq0Xj2avgdb0gS/syuHk3uG5vzstQY. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.0.211' (ECDSA) to the list of known hosts. Password: Connected to 192.168.0.211.若要指定端口登陆,则可添加参数如下:命令: sftp -oPort=端口 用户名@ip 2、退出命令: quit / bye / exit 3、sftp - 上传文件:如果上传/下载的是文件夹, 在put/get命令后加上-r参数即可。上传文件: 把本地服务器的/www/wwwroot目录下面的study.log文件上传到远程服务器的/www/server目录下。 sftp> lcd /www/wwwroot sftp> put study.log /www/server 上传文件夹:把本地服务器的/www/wwwroot目录下面的test文件夹上传到远程服务器的/www/server目录下。 sftp> put -r test /www/server 查看远程服务器/www/server目录下面的文件和文件夹 sftp> ls /www/server4、sftp - 下载文件下载文件: 把远程服务器的/www/server目录下面的study.log文件下载到本地服务器的/www目录下。 sftp> get /www/server/study.log /www 下载文件夹:把远程服务器的/www/server目录下面的test文件夹下载到本地服务器的/www目录下。 sftp> get -r /www/server/test /www 查看本地服务器/www目录下面的文件和文件夹 sftp> lls /www3、常用命令ls -查看当前目录下的文件help -查看sftp支持哪些命令cd -进入某个目录pwd -查看当前目录路径rm 文件 -删除文件get 服务器地址 本地地址 -从服务器上下载文件到本地put 本地地址 服务器地址 -从本地上传文件到服务器Tips:如果想要下载文件夹:get -r 服务器地址 本地地址 -从服务器上下载文件夹到本地{/tabs-pane}{tabs-pane label="常用命令"}bye/exit 退出sftp cd 更改远程服务器工作目录 clear 清屏 explore 导入本地目录 get 从远程服务器上下载文件到本机 help 查找帮助 lcd 切换本地当前工作目录 lls 列出本地当前目录的内容 lpwd 打印当前工作目录 ls 列出远程服务器目录内容 mkdir 在远程服务器上创建一个目录 mv 搬移或重命名一个的远程服务器文件 put 将本机的文件上传到远程服务器 pwd 打印远程服务器工作路径 quit 退出 rename 搬移或重命名一个的远程服务器文件 rm 删除一个文件 rmdir 在远程服务器上删除一个目录删除一个目录 2、常用的为上传下载get从远程服务器上下载一个文件存放到本地,如下:先通过lcd切换到本地那个目录下,然后通过get filelcd d: #表示切换到本地的d盘下get ./test.sql #这样就将当前文件下载本地的d盘下put #是将本地的文件上传到远程服务器上,如下:put #在windows下弹出选择文件的窗口lcd #先通过lcd切换到本地那个目录下lcd c: #表示切换到本地的c盘下lls #显示当前目录下的所有文件pwd #显示当前目录{/tabs-pane}{/tabs}
2024年04月23日
4 阅读
0 评论
0 点赞
2024-04-23
TOMCAT自启动
{tabs}{tabs-pane label="方式一"}systemctl方式1.找到JDK位置(后面的配置需用到)对于已经安装JDK,我们需要找出JDK的具体位置,可以参考以下命令root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin# which java /usr/local/jdk-17/jdk-17.0.11//bin/java root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin# whereis java java: /usr/bin/java /usr/share/java /usr/local/jdk-17/jdk-17.0.11/bin/java /usr/local/jdk1.8/bin/java root@ixjkj-standard-pc-i440fx-piix-1996-1:/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin#find / -name java根据以上显示可知JDK的安装目录为:/usr/local/jdk-17/jdk-17.0.11Tomcat目录为:/usr/local/tomcat-11/apache-tomcat-11.0.0-M192.tomcat配置pid找到并编辑 tomcat/bin/catalina.sh# Copy CATALINA_BASE from CATALINA_HOME if not already set [ -z "$CATALINA_BASE" ] && CATALINA_BASE="$CATALINA_HOME" # 设置pid。一定要加在CATALINA_BASE定义后面,要不然pid会生成到/下面 CATALINA_PID="$CATALINA_BASE/tomcat.pid"3.新建tomcat.service文件【非常重要:前提是完成第2步】nano /lib/systemd/system/tomcat.servicenano /etc/systemd/system/tomcat.service[Unit] Description=Apache Tomcat After=syslog.target network.target remote-fs.target nss-lookup.target [Service] Type=forking Environment="JAVA_HOME=/usr/local/jdk-17/jdk-17.0.11" PIDFile=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/tomcat.pid ExecStart=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/startup.sh ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true User=root Group=root [Install] WantedBy=multi-user.target [Unit] 表示这是基础信息Description 是描述After 是在那个服务后面启动,一般是网络服务启动后启动[Service] 表示这里是服务信息Type 是服务类型PIDFile 是服务的pid文件路径, 开启后,必须在tomcat的bin/catalina.sh中加入CATALINA_PID参数ExecStart 是启动服务的命令ExecReload 是重启服务的命令ExecStop 是停止服务的指令[Install] 表示这是是安装相关信息WantedBy 是以哪种方式启动:multi-user.target表明当系统以多用户方式(默认的运行级别)启动时,这个服务需要被自动运行。若是中间再次修改tomcat.service文件后需要执行下面命令使其生效:systemctl daemon-reload4.启动成功。若是第2步没有完成直接进入第3步后,启动服务会出现一个错误5.设置开机自启#设置开机自启动 systemctl enable tomcat.service #停止开机自启动 systemctl disable tomcat.service #启动Tomcat服务 systemctl start tomcat.service #查看服务当前状态 systemctl status tomcat.service #重新启动服务 systemctl restart tomcat.service #查看所有已启动的服务 systemctl list-units --type=service查询TOMCAT进程(或者干掉进程)查询tomcat 进程ps -ef | grep tomcatkill -9 进程ID(备注:根据实际情况替换值)kill -9 856{/tabs-pane}{tabs-pane label="方式二"}/etc/init.d 方式(待验证)找到java、tomcat安装路径find / -name java复制tomcat/bin目录下的catalina.sh 到/etc/init.d目录下cp /usr/local/tomcat-11/apache-tomcat-11.0.0-M19/bin/catalina.sh /etc/init.d/tomcat将/etc/init.d/catalina.sh重命名为tomcatmv /etc/init.d/catalina.sh tomcat编辑tomcat文件,在头部添加内容(注意java、tomcat路径)nano /etc/init.d/tomcat### BEGIN INIT INFO # Provides: tomcat # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Should-Start: $network $time # Should-Stop: $network $time # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start tomcat daemon at boot time # Description: Start tomcat daemon at boot time ### END INIT INFO JAVA_HOME=/usr/local/jdk-17/jdk-17.0.11 JRE_HOME=/usr/local/jdk-17/jdk-17.0.11 CATALINA_HOME=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19 CATALINA_BASE=/usr/local/tomcat-11/apache-tomcat-11.0.0-M19修改tomcat权限chmod +x /etc/init.d/tomcat重新加载服务器配置systemctl daemon-reload启动服务service tomcat start添加到自启动服务update-rc.d tomcat defaults查看是否开机自启,目前是disablesystemctl is-enabled tomcat.service将Tomcat服务设置为开机自启systemctl enable tomcat.service 重启,使配置生效sudo reboot{lamp/}修改或创建/etc/rc.local文件#!/bin/bash # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. service tomcat start exit 0复制/etc/rc.local到/etc/rc0.d目录cp /etc/rc.local /etc/rc0.d给这两个文件添加可执行权限chmod +x /etc/rc.local chmod +x /etc/rc0.d/rc.local重启服务器,tomcat或者tomcat下部署的项目查看是否配置成功reboot{/tabs-pane}{/tabs}
2024年04月23日
3 阅读
0 评论
0 点赞
1
2
3
4
...
6