日常

JOBCHER BLOG
linux服务器 删除空间却未释放
linux 服务器 删除空间却未释放 在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的目录结构上解除链接(unlink),然而如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用,这样就会导致我们明明删除了文件,但是磁盘空间却未被释放 获取占用列表状态 1lsof | grep deleted 可以看到哪些文件还被使用,未被释放空间。 释放磁盘空间 一种方法是 kill 掉相应的进程,或者停掉使用这个文件的应用,让 os 自动回收磁盘空间,当 linux 打开一个文件的时候,Linux 内核会为每一个进程在/proc/, /proc/nnnn/fd/目录(nnnn 为 pid)建立一个以其 pid 为名的目录用来保存进程的相关信息,而其子目录 fd 保存的是该进程打开的所有文件的 fd(fd:file descriptor); kill进程是通过截断 proc 文件系统中的文件可以强制要求系统回收分配给正在使用的的文件,这是一项高级技术,仅当管理员确定不会对运行中的进程造成影响时使用。 1kill -9 12345 # PID 重启服务 lsof 命令 lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux 环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。
JOBCHER BLOG
VSCode插件推荐=> Code Runner
VSCode 插件推荐=> Code Runner Run code snippet or code file for multiple languages: C, C++, Java, JavaScript, PHP, Python, Perl, Perl 6, Ruby, Go, Lua, Groovy, PowerShell, BAT/CMD, BASH/SH, F# Script, F# (.NET Core), C# Script, C# (.NET Core), VBScript, TypeScript, CoffeeScript, Scala, Swift, Julia, Crystal, OCaml Script, R, AppleScript, Elixir, Visual Basic .NET, Clojure, Haxe, Objective-C, Rust, Racket, Scheme, AutoHotkey, AutoIt, Kotlin, Dart, Free Pascal, Haskell, Nim, D, Lisp, Kit, V, SCSS, Sass, CUDA, Less, Fortran, Ring, and custom command
JOBCHER BLOG
ant build.xml 编写
ant build.xml 编写 生成 build.xml Eclipse 自动生成 Ant 的Build.xml 配置文件,生成的方法很隐蔽 选择你要生成Build.xml文件的项目,右键. Export-> General -> Ant Buildfiles . 点 Next,选择项目,再点Finish. 编写 build.xml 1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 3<!-- 每个构建文件对应一个项目。<project>标签时构建文件的根标签。它可以有多个内在属性,就如代码中所示,其各个属性的含义分别如下。 4(1) default表示默认的运行目标,这个属性是必须的。 5(2) basedir表示项目的基准目录。 6(3) name表示项目名。 7(4) description表示项目的描述。 8 --> 9<project default="build" name="Sort"> 10 <!-- 设置属性或文件路径,读取属性使用${property},value路径默认项目根目录 --> 11 <property file="ant/builds.properties" /> 12 13 <property name="src.dir" value="src/statics" /> 14 15 <property name="classes.dir" value="ant/classes" /> 16 17 <property name="lib.dir" value="lib" /> 18 19 <property name="dist.
JOBCHER BLOG
记录一次上门打散工
记录一次上门打散工 壬寅年头磨难多 人间规则奈吾何 吟诗为把瘟神送 风起大江扬洪波 疫情减弱,遍邀亲友,无人相约,但闻昔日挚友,感怀往事邀吾往之。欲把殷勤牵挂诉,幸之。遂至友舍,诉之:帮忙装个监控吧~ 买物料 和朋友两个人出发,帮朋友邻居家装个监控,他这个监控是要求装在车库里,但是网线要从 4 楼下放下去。所以,我们首先要出门购买一下物料: 带 RJ45 接口监控 足够长的网线 走了 10000 多步人都走傻了~ 布线 这个没啥好说的,纯粹体力活,感谢朋友的暴风之锤,提高了工作效率,加快了项目进度 感谢 感谢朋友,给我这次项目实践和锻炼的机会让我认识到了自己的能力的不足~ 欢迎关注我的博客www.jobcher.com
JOBCHER BLOG
Ant中如何添加第三方jar包依赖
Ant 中如何添加第三方 jar 包依赖 如果使用 ant 进行 java 项目的编译部署,那怎么添加第三方 jar 包的依赖呢?方法如下: 在项目的根目录下创建 lib 目录,并把所有需要的第三方 jar 包放到此目录下。 在 build.xml 中依次添加:path、property,并在 javac 中添加 classpath,添加 unjar。完整配置如下: 1<?xml version="1.0" encoding="UTF-8"?> 2<project name="MyTool" default="build" basedir="."> 3 <description>The ant project to build MyTool.</description> 4 <property name="srcDir" location="src" description="源文件的存放目录" /> 5 <property name="libDir" location="lib" description="第三方jar包的存放目录" /> 6 <property name="antDir" location="ant" description="编译后所有文件存放的根目录" /> 7 <property name="binDir" location="${antDir}/bin" description="编译后class文件的存放目录" /> 8 <property name="jarDir" location="${antDir}/jar" description="打包后jar包的存放目录" /> 9 <property name="jarFile" location="${jarDir}/MyTool.
JOBCHER BLOG
linux 网络测速
linux 网络测速 一键测试脚本bench.sh 适用于各种 Linux 发行版的网络(下行)和 IO 测试: 显示当前测试的各种系统信息 取自世界多处的知名数据中心的测试点,下载测试比较全面 支持 IPv6 下载测速 IO 测试三次,并显示平均值 1wget -qO- bench.sh | bash 2#或者下面这命令下载执行 3curl -Lso- bench.sh | bash 欢迎关注我的博客www.jobcher.com
JOBCHER BLOG
网心云挂机教程 | 轻松实现睡后收入~
网心云挂机教程 | 轻松实现睡后收入~ 首先,本文章只是分享,造成一切的后果,博主概不负责!都是成年人了…… 我采用 docker 容器魔方来挂载网心云 docker 部署 /mnt/money/wxedge_storage这个路径改为自己的存储路径建议>200G 1docker run \ 2--name=wxedge \ 3--restart=always \ 4--privileged \ 5--net=host \ 6--tmpfs /run \ 7--tmpfs /tmp \ 8-v /mnt/money/wxedge_storage:/storage:rw \ 9-d \ 10registry.cn-hangzhou.aliyuncs.com/onething/wxedge 设备绑定 进入 dockerip 地址 (http://127.0.0.1:18888) 下载 app 扫码绑定 成功 然后坐等第二天收益到账就可以了,记得19:00-23:00是收益高峰期尽量保持在线~
JOBCHER BLOG
Proxmox VE 在线扩容磁盘分区
Proxmox VE 在线扩容磁盘分区 添加磁盘大小 在 VM 上做扩容操作 安装 growpart 1yum install -y epel-release 2yum install -y cloud-utils 查看系统盘 路径 1fdisk -l 2df -h 扩容设备并重启 1growpart /dev/sda 2 #2代表是第二块系统分区,不是sda2,中间有空格 2reboot 重启执行命令 1xfs_growfs /dev/sda2 #(xfs 文件系统) 2resize2fs /dev/sda2 #(ext4 文件系统) 更新完成 1df -h 逻辑卷没有正常扩容的情况 检查当前逻辑卷属于哪个卷组: 1vgdisplay 检查卷组中是有足够的空间可以扩容,还有99g 扩展逻辑卷大小到200G: 1lvextend -L +99G /dev/mapper/ubuntu--vg-ubuntu--lv 调整文件系统大小到逻辑卷大小: 1resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 4. 检查 1df -h /dev/mapper/ubuntu--vg-ubuntu--lv 成功扩容
JOBCHER BLOG
centos7.9 网络配置
centos7.9 网络配置 解决 centos 新机器网络不通的问题,CentOS7 默认不启动网卡的。CentOS 安装成功后,进行一下 ping 的操作,验证网络是否联通. 1ping 1.1.1.1 2ip addr 3# 查看ip网络名称 启用网卡 进入 /etc/sysconfig/network-scipts 文件夹下,找到 IP 网卡名称 1cd /etc/sysconfig/network-scipts 2vim ifcfg-eth0 启用 ONBOOT 1#vim ifcfg-eth0 2#修改 3ONBOOT=YES 4# esc 并:wq退出保存 重启机器 1shutdown -r now 结尾 centos 用的挺别扭,不考虑性能和性价比,我还是喜欢用 ubuntu……,简单的配置,初学者我建议还是先用 ubuntu,会少踩很多坑。当然了,用 x86 不然初学者用树莓派和 arm 设备,会碰到很多兼容性的问题。
JOBCHER BLOG
RocketMQ 安装和启动
RocketMQ 安装和部署 部署 RocketMQ 单机安装构建 安装 JDK 1.8.0 1yum install java-1.8.0-openjdk* 安装 Maven 1wget http://dlcdn.apache.org/maven/maven-3/3.8.4/binaries/apache-maven-3.8.4-bin.tar.gz 2tar -zxvf apache-maven-3.8.4-bin.tar.gz 3mv -f apache-maven-3.8.4 /usr/local/ 4vim /etc/profile 5# 末尾添加 6export MAVEN_HOME=/usr/local/apache-maven-3.8.4 7export PATH=${PATH}:${MAVEN_HOME}/bin 8# 保存 9source /etc/profile 10# 查看maven是否正常 11mvn -v 快速部署 1#构建 DLedger 2git clone https://github.com/openmessaging/openmessaging-storage-dledger.git 3cd openmessaging-storage-dledger 4mvn clean install -DskipTests 5# 构建 RocketMQ 6git clone https://github.com/apache/rocketmq.git 7cd rocketmq 8git checkout -b store_with_dledger origin/store_with_dledger 9mvn -Prelease-all -DskipTests clean install -U 10# 部署 11cd rocketmq/distribution/target/apache-rocketmq 12sh bin/dledger/fast-try.
JOBCHER BLOG
安装 minIO Azure S3网关
安装 minIO 通过 docker 安装 1docker run -p 9000:9000 -p 41863:41863 -d --name azure-s3 \ 2 -e "MINIO_ACCESS_KEY=azure存储账户" \ 3 -e "MINIO_SECRET_KEY=azure存储密码" \ 4 minio/minio gateway azure --console-address ":41863" 通过 docker-compose 安装 1version: "3" 2services: 3 minio: 4 image: "minio/minio:RELEASE.2022-01-04T07-41-07Z.fips" 5 container_name: "minio" 6 restart: "always" 7 volumes: 8 - "/etc/localtime:/etc/localtime" 9 ports: 10 - "9000:9000" 11 - "9001:9001" 12 environment: 13 - "MINIO_ROOT_USER=azure存储账户" 14 - "MINIO_ROOT_PASSWORD=azure存储密码" 15 command: 16 - --console-address ":41863"
JOBCHER BLOG
logrotate 日志滚动的使用
logrotate 日志滚动的使用 logrotate 日志滚动切割工具,是 linux 默认安装的工具,配置文件位置: 1/etc/logrotate.conf 2/etc/logrotate.d/ 参数 以 nginx 配置为例 1/opt/log/nginx/*.log { 2 daily 3 missingok 4 rotate 14 5 errors "nb@nbtyfood.com" 6 compress 7 delaycompress 8 notifempty 9 create 0640 www-data adm 10 sharedscripts 11 prerotate 12 if [ -d /etc/logrotate.d/httpd-prerotate ]; then \ 13 run-parts /etc/logrotate.d/httpd-prerotate; \ 14 fi \ 15 endscript 16 postrotate 17 invoke-rc.d nginx rotate >/dev/null 2>&1 18 endscript 19} 参数 作用 compress 压缩日志文件的所有非当前版本 daily,weekly,monthly 按指定计划轮换日志文件 delaycompress 压缩所有版本,除了当前和下一个最近的 endscript 标记 prerotate 或 postrotate 脚本的结束 errors “emailid” 给指定邮箱发送错误通知 missingok 如果日志文件丢失,不要显示错误 notifempty 如果日志文件为空,则不轮换日志文件 olddir “dir” 指定日志文件的旧版本放在 “dir” 中 postrotate 引入一个在日志被轮换后执行的脚本 prerotate 引入一个在日志被轮换前执行的脚本 rotate ’n' 在轮换方案中包含日志的 n 个版本 sharedscripts 对于整个日志组只运行一次脚本 size=‘logsize’ 在日志大小大于 logsize(例如 100K,4M)时轮换