分类: 技术

  • Minio Windows 安装

    MinIO Server

    PS> Invoke-WebRequest -Uri "https://dl.minio.org.cn/server/minio/release/windows-amd64/minio.exe" -OutFile "C:\minio.exe"
    PS> setx MINIO_ROOT_USER admin
    PS> setx MINIO_ROOT_PASSWORD password
    PS> C:\minio.exe server F:\Data --console-address ":9001"

    MinIO Client

    PS> Invoke-WebRequest -Uri "https://dl.minio.io/client/mc/release/windows-amd64/mc.exe" -OutFile "C:\mc.exe"
    C:\mc.exe alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
  • Minio Linux下载安装

    MinIO Server

    wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio 
    或 wget https://gitee.com/houlijiang/common/raw/master/minio-erver-linux-amd64 chmod +x minio MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=password ./minio server /mnt/data --console-address ":9001"

    MinIO Client

    wget https://dl.minio.org.cn/client/mc/release/linux-amd64/mc 
    或 wget https://gitee.com/houlijiang/common/raw/master/mc-client-linux-amd64 chmod +x mc mc alias set myminio/ http://MINIO-SERVER MYUSER MYPASSWORD
  • Docker镜像的导入导出

    最新

    导入导出命令介绍

    涉及的命令有export、import、save、load

    save

    • 命令
      docker save [options] images [images...]
    • 示例
      docker save -o nginx.tar nginx:latest

      docker save > nginx.tar nginx:latest
      其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)

    load

    • 命令
      docker load [options]
    • 示例
      docker load -i nginx.tar

      docker load < nginx.tar
      其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息

    export

    • 命令
      docker export [options] container
      这里写图片描述
    • 示例
      docker export -o nginx-test.tar nginx-test
      其中-o表示输出到文件,nginx-test.tar为目标文件,nginx-test是源容器名(name)

    import

    • 命令
      docker import [options] file|URL|- [REPOSITORY[:TAG]]
      这里写图片描述
    • 示例
      docker import nginx-test.tar nginx:imp

      cat nginx-test.tar | docker import - nginx:imp

    区别

    • export命令导出的tar文件略小于save命令导出的
      这里写图片描述
    • export命令是从容器(container)中导出tar文件,而save命令则是从镜像(images)中导出
    • 基于第二点,export导出的文件再import回去时,无法保留镜像所有历史(即每一层layer信息,不熟悉的可以去看Dockerfile),不能进行回滚操作;而save是依据镜像来的,所以导入时可以完整保留下每一层layer信息。如下图所示,nginx:latest是save导出load导入的,nginx:imp是export导出import导入的。
      这里写图片描述

    建议

    可以依据具体使用场景来选择命令

    • 若是只想备份images,使用save、load即可
    • 若是在启动容器后,容器内容有变化,需要备份,则使用export、import
  • 新整理,影视仓、可视TV、喵影视等类TvBox接口,多个精品源!

    TVBox是一款非常优秀的电视盒子,开源、免费、可自由定制,可以根据自己的需求去配置TVBox。以下TVBox影视接口配置地址由各位大佬配置分享,一般配置后会自动支持影视点播、电视直播等,整理、汇总并持续更新。

    部分优质网址已更新至“收藏夹”,后续将长期提供维护!

     

     

    20240813172940

    以下接口配置地址不分先后,Tvbox 和 影视仓 均可使用以下接口(ZYPlayer可能有些许兼容性问题)。

    南风

    https://agit.ai/Yoursmile7/TVBox/raw/branch/master/XC.json

    胖虎接口

    https://notabug.org/imbig66/tv-spider-man/raw/master//0801.json

    巧儿接口

    http://pandown.pro/tvbox/tvbox.json

    4K云盘接口

    https://9xi4o.tk/0725.json

    俊哥接口

    http://home.jundie.top:81/top98.json Ray:https://100km.top/0

    俊于

    http://home.jundie.top:81/top98.json

    okjack

    https://jihulab.com/okcaptain/kko/raw/main/ok.txt

    摸鱼儿

    http://我不是.摸鱼儿.top

    高天流云 js

    https://mirror.ghproxy.com/raw.githubusercontent.com/gaotianliuyun/gao/master/js.json

    香雅情 XYQ

    https://github.moeyy.xyz/https://raw.githubusercontent.com/xyq254245/xyqonlinerule/main/XYQTVBox.json

    肥猫

    http://肥猫.live

    小白

    http://bp.tvbox.cam/

    讴歌

    http://tv.nxog.top/m/

    神器

    https://神器每日推送.tk/pz.json

    PG one

    https://mirror.ghproxy.com/raw.githubusercontent.com/gaotianliuyun/gao/master/0825.json

    菜妮丝 XBPQ

    https://tv.xn--yhqu5zs87a.top

    霜辉月明py

    https://api-lmteam.koyeb.app/files/py.json

    小米

    https://www.mpanso.com/小米/DEMO.json

    巧技

    http://cdn.qiaoji8.com/tvbox.json

    OK屌炸天(影视)

    http://ok321.top/tv

    纯一骚零

    https://100km.top/0

    王二小放牛娃接口

    http://tvbox.王二小放牛娃.top/

    饭太硬

    http://www.饭太硬.top/tv/

    其他大佬接口汇总

    01.https://raw.liucn.cc/box/m.json

    02.https://dxawi.github.io/0/0.json

    03.http://home.jundie.top:81/top98.json

    04.http://cdn.qiaoji8.com/tvbox.json

    05.http://pandown.pro/tvbox/tvbox.json

    06.https://pastebin.com/raw/gtbKvnE1

    07.https://pastebin.com/raw/sbPpDm9G

    08.https://zzzzz.tv/tv/ys.json

    09.https://zzzzz.tv/tv/svip.json

    10.https://weixine.net/ysc.json

    11.https://kjsc0310.github.io/tvy/jk9.json

  • Minio 挂在驱动minfs

    1. rpm 

    //  RPM 包下载
    yum -y install http://dl.jxit.net.cn/jxfiles/minio/minfs-0.0.20170226202056-1.x86_64.rpm
    
    

    2. 配置

       创建 config.json  在目录  /etc/minfs 内容如下:

    {"version":"1","accessKey":"Q3AM3UQ867SPQQA43P2F","secretKey":"zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG"}
    

      进行磁盘挂载/etc/fstab,类似如下:

    https://play.minio.io:9000/mybucket /mnt/mounted/mybucket minfs defaults,cache=/tmp/mybucket 0 0
    mount /mnt/mounted/mybucket
    
  •  Windows注册服务的几种方式 

    方式一:使用Windows自带的sc命令

    1、使用管理员权限打开cmd窗口
    2、注册服务命令:
    sc create 服务名 binpath= 程序所在路径 type= own start= auto displayname= 服务显示名称

    sc create redis binpath= d:\tools\redis--x64-5.0.14\redis-server.exe type= own start= auto displayname= redis
    

    3、服务启动和关闭

    启动服务:net start redis 或 sc start redis
    停止服务:net stop redis 或 sc stop redis
    删除服务:sc delete redis
    查询服务详细:sc query redis
    

    如果在services.msc启动服务报错:错误1053:服务没有及时响应启动或控制请求
    则说明通过sc注册服务存在问题,可删除服务,通过其它方式注册;

    说明:如果要注册的exe不符合服务的规范,此方式启动有可能会失败。

    方式二:使用WinSW注册(推荐)

    WinSW下载地址:
    https://github.com/winsw/winsw/releases

    https://github.com/winsw/winsw/releases/download/v3.0.0-alpha.11/WinSW-x64.exe

    网盘下载地址:https://www.123pan.com/s/3zhuVv-IPM13.html

    注意:32位和64位不同系统需选择其对应的exe文件。

    1、将WinSW.exe拷贝至目标文件夹;
    2、配置myapp.xml文件,指定执行命令等参数;

    myapp.xml配置示例如下:

    <service>
      <id>jenkins</id>
      <name>Jenkins</name>
      <description>This service runs Jenkins continuous integration system.</description>
      <env name="JENKINS_HOME" value="%BASE%"/>
      <executable>java</executable>
      <arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
      <log mode="roll"></log>
    </service>
    

    说明:
    (1)%BASE% 变量默认指向winsw.exe所在目录;
    (2)winsw和myapp.xml名称可按照实际服务命名。

    具体使用详见官方文档:https://github.com/winsw/winsw

    下载地址:https://www.123pan.com/s/3zhuVv-Hv113.html

    3、服务注册/启动/关闭相关命令:

    注册服务:winsw install myapp.xml
    启动服务:winsw start myapp.xml
    查看服务状态:winsw status myapp.xml
    

    方式三:使用instsrv+srvany注册(不推荐)

  • elasticsearch 安装IK分词插件

    docker run --name elasticsearch -p 9200:9200 \
     -p 9300:9300 \
     -e "discovery.type=single-node" \
     -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
      -v /home/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
     -v /home/elasticsearch/data:/usr/share/elasticsearch/data \
     -v /home/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
     -d elasticsearch:7.7.0
    --name elasticsearch:将容器命名为 elasticsearch
    -p 9200:9200:将容器的9200端口映射到宿主机9200端口
    -p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
    -e "discovery.type=single-node":单例模式
    -e ES_JAVA_OPTS="-Xms64m -Xmx128m":配置内存大小
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:将配置文件挂载到宿主机
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data:将数据文件夹挂载到宿主机
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins:将插件目录挂载到宿主机(需重启)
    -d elasticsearch:7.7.0:后台运行容器,并返回容器ID

    2.2、安装ik分词器

    进入已经启动成功的elasticsearch容器。

    docker exec -it elasticsearch /bin/bash
    
    ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
  • docker容器打包成镜像

    要将一个Docker容器打包成一个镜像,你需要使用docker commit命令。这个命令会基于容器的当前状态创建一个新的镜像。

    以下是使用docker commit命令的基本步骤:

    1. 确定要打包的容器ID或名称。可以使用docker ps命令查看正在运行的容器。
    2. 使用docker commit命令创建镜像,指定镜像的名称和标签。

    例如,如果你有一个名为my_container的容器,想要将它打包为名为my_image的镜像,并且标签为v1.0,你可以运行以下命令:

    bashdocker commit my_container my_image:v1.0

    完成这个命令后,my_container容器的当前状态就会被保存为一个名为my_image,标签为v1.0的新镜像。

    注意,这种方式创建的镜像只包含了容器运行时的状态,不包含构建时的历史和上下文信息。如果你想要创建一个可重复构建的Docker镜像,你应该使用Dockerfile来构建

    1. 登录阿里云Docker Registry

    $ docker login --username=tb55571********@aliyun.com registry.cn-beijing.aliyuncs.com

    用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

    您可以在访问凭证页面修改凭证密码。

    2. 从Registry中拉取镜像

    $ docker pull registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]

    3. 将镜像推送到Registry

    $ docker login --username=tb55571********@aliyun.com registry.cn-beijing.aliyuncs.com
    $ docker tag [ImageId] registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]
    $ docker push registry.cn-beijing.aliyuncs.com/houlijiang/es-ik:[镜像版本号]

    请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

    4. 选择合适的镜像仓库地址

    从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

    如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-beijing.aliyuncs.com 作为Registry的域名登录。

    5. 示例

    使用”docker tag”命令重命名镜像,并将它通过专有网络地址推送至Registry。

    $ docker images
    REPOSITORY                                                         TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    registry.aliyuncs.com/acs/agent                                    0.7-dfb6816         37bb9c63c8b2        7 days ago          37.89 MB
    $ docker tag 37bb9c63c8b2 registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816

    使用 “docker push” 命令将该镜像推送至远程。

    $ docker push registry-vpc.cn-beijing.aliyuncs.com/acs/agent:0.7-dfb6816
  • MySQL数字的取整、四舍五入、保留n位小数

    数学函数是MySQL中常用的一类函数。其主要用于处理数字,包括整型和浮点数等等。

    MySQL常用的四舍五入函数:

    函数 说明
    FLOOR(X) 返回不大于X的最大整数。
    CEIL(X)、CEILING(X) 返回不小于X的最小整数。
    TRUNCATE(X,D) 返回数值X保留到小数点后D位的值,截断时不进行四舍五入。
    ROUND(X) 返回离X最近的整数,截断时要进行四舍五入。
    ROUND(X,D) 保留X小数点后D位的值,截断时要进行四舍五入。
    FORMAT(X,D) 将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入。

    1、FLOOR(X)函数

    返回不大于X的最大整数。

    SELECTFLOOR(1.3); -- 输出结果:1SELECTFLOOR(1.8); -- 输出结果:1

    2、CEIL(X)、CEILING(X)函数

    返回不小于X的最小整数。

    SELECTCEIL(1.3);    -- 输出结果:2SELECTCEILING(1.8); -- 输出结果:2

    3、TRUNCATE(X,D)函数

    返回数值X保留到小数点后D位的值,截断时不进行四舍五入。

    SELECT TRUNCATE(1.2328,3); -- 输出结果:1.232 

    4、ROUND(X)函数

    返回离X最近的整数,截断时要进行四舍五入。

    SELECT ROUND(1.3);  -- 输出结果:1SELECT ROUND(1.8);  -- 输出结果:2

    5、ROUND(X,D)函数

    保留X小数点后D位的值,截断时要进行四舍五入。

    SELECT ROUND(1.2323,3);  -- 输出结果:1.232SELECT ROUND(1.2328,3);  -- 输出结果:1.233

    6、FORMAT(X,D)函数

    将数字X格式化,将X保留到小数点后D位,截断时要进行四舍五入。

    SELECT FORMAT(1.2323,3);  -- 输出结果:1.232SELECT FORMAT(1.2328,3);  -- 输出结果:1.233
  • MySQL删除表数据、清空表命令(truncate、drop、delete 区别)

    一、MySQL清空表数据三种方法

    1.1 清空表数据:truncate

    • sql命令

    代码语言:sql

    复制

    #清空多张表、库中所有表的数据
    truncate table table_name1,table_name2,...;
    
    #清空单张表的数据
    truncate table table_name;
    • 注意:
    • truncate会删除表中的所有数据、释放空间,但是保留表结构
    • 只能操作表,不能与where一起使用
    • truncate删除操作立即生效,原数据不放到rollback segment中,不能rollback,操作不触发trigger
    • truncate删除数据后会释放表空间、重置Identity(标识列、自增字段),相当于自增列会被置为初始值,又重新从1开始记录、而非接着原来的id数
    • truncate删除数据后不写服务器log,整体删除速度快

    1.2 删除表:drop

    • sql命令

    代码语言:sql

    复制

    drop table table_name;
    drop table if exists table_name;
    • 注意:
      • drop会删除整个表,包括表结构和数据,释放空间
      • 立即执行,执行速度最快
      • 不可回滚

    1.3 删除/清空表数据:delete

    • sql命令

    代码语言:sql

    复制

    #删除部分数据
    delete from tb_name where clause;
    
    #清空表,仅删除数据、保留表结构,同时也不释放表空间
    delete from tb_name;
    • 注意:
      • 删除表中数据而不删除表结构,也不释放空间
      • delete可以删除一行、多行、乃至整张表
      • 每次删除一行,都在事务日志中为所删除的每行记录一项,可回滚
      • 如果不加where条件,表示删除表中所有数据,仅删除数据、保留表结构,同时也不释放表空间

    MySQL、Mariadb、PostgreSQL删除表数据、清空表命令 都可用以上三种命令。

    二、使用原则

    使用原则总结如下:

    • 当你不需要该表时(删除数据和结构),用drop;
    • 当你仍要保留该表、仅删除所有数据表内容时,用truncate;
    • 当你要删除部分记录、且希望能回滚的话,用delete;

    在没有备份的情况下,谨慎使用drop、truncate。

    在实际应用中,要根据具体需求和场景选择合适的操作。

    三、truncate、drop、delete区别

    truncate、delete和drop都是用于删除数据或表的操作,但它们之间有一些关键的区别:

    1. 操作类型:
      • truncate:删除表中的所有数据,保留表结构,释放空间。它是一种DDL(数据定义语言)操作,执行速度较快。
      • delete:删除表中的特定行,可以逐行删除,保留表结构,也不释放空间。它是一种DML(数据操作语言)操作,执行速度较慢。
      • drop:删除整个表,包括表结构和数据,释放空间。它是一种DDL操作,但不同于truncate,它会释放表所占用的空间。
    2. 数据删除方式:
      • truncate:删除表中的所有数据,但不会删除表结构。适用于需要保留表结构的情况。
      • delete:删除表中的特定数据,可以根据条件删除,表的结构和约束保持不变。适用于需要根据特定条件删除数据的情况。
      • drop:删除整个表,包括表结构和数据。适用于不再需要表结构的情况。
    3. 执行速度:drop > truncate > delete
      • truncate:执行速度较快,因为它一次性删除所有数据,过释放表的存储空间来删除数据,并将表重置为初始状态。
      • delete:执行速度较慢,因为它需要逐行删除数据,并且会生成大量的事务日志,同时也不释放空间。
      • drop:执行速度较快,因为它一次性删除整个表。
    4. 回滚能力:
      • truncate:不可回滚,一旦执行,数据将被永久删除、无法恢复。
      • delete:可以回滚,使用ROLLBACK语句可以撤销删除操作。
      • drop:不可回滚,一旦执行,表结构和数据都将被永久删除。
    5. 触发器:
      • truncate:不会触发触发器。
      • delete:会触发触发器。
      • drop:不会触发触发器,因为它是删除整个表。

    总结:

    • 如果您需要快速删除整个表中的数据,但保留表结构,可以选择truncate。
    • 如果您需要删除特定行的数据,可以根据条件删除,可以选择delete。
    • 如果您需要删除整个表,包括表结构和数据,可以选择drop。 在实际应用中,要根据具体需求和场景选择合适的操作。