<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[房馥的技术博客]]></title><description><![CDATA[十余年运维开发工作经验，分享运维干货]]></description><link>https://blog.youkuaiyun.com/fangfu123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fangfu123]]></copyright><item><title><![CDATA[shell脚本自动删除30天以前的文件]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/129705221</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/129705221</guid><author>fangfu123</author><pubDate>Wed, 22 Mar 2023 10:56:37 +0800</pubDate><description><![CDATA[这样就可以每天自动删除指定目录下30天以前的文件了。需要删除的文件目录在/data/dbbak，]]></description><category></category></item><item><title><![CDATA[helm 安装自定义Chart报错：create: failed to create: Request entity too large: limit is 3145728]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/127789740</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/127789740</guid><author>fangfu123</author><pubDate>Thu, 10 Nov 2022 15:34:43 +0800</pubDate><description><![CDATA[create: failed to create: Request entity too large: limit is 3145728]]></description><category></category></item><item><title><![CDATA[helm实现ip_hash负载均衡]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/123370932</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/123370932</guid><author>fangfu123</author><pubDate>Wed, 09 Mar 2022 14:14:38 +0800</pubDate><description><![CDATA[apiVersion: v1
kind: Service
metadata:
  name: {{ include "trge5gmserver.fullname" . }}
  labels:
    {{- include "trge5gmserver.labels" . | nindent 4 }}
spec:
  type: {{ .Values.service.type }}
  sessionAffinity: ClientIP
  sessionAffinityConfig:
    clie]]></description><category></category></item><item><title><![CDATA[在Python中，json.jumps无法直接转译datetime类型的值]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/122729019</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/122729019</guid><author>fangfu123</author><pubDate>Fri, 28 Jan 2022 14:55:53 +0800</pubDate><description><![CDATA[python中，json.jumps无法直接转译datetime类型的值。
最简便的方法可以通过下面这个：
json.dumps(results, indent=4, sort_keys=True, default=str)

说明：
indent=4: 输出的json文件中，用4个空格表示间距
sort_keys: 输出的json文件中，次序使用key
default=str: 碰到json.dumps 没法转译的类型值，采用直接转化为str类型再转译。
实际应用示例：
vi order.json
[
 ]]></description><category></category></item><item><title><![CDATA[unity-accelerator的部署]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/122715058</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/122715058</guid><author>fangfu123</author><pubDate>Fri, 28 Jan 2022 11:34:59 +0800</pubDate><description><![CDATA[Unity-accelerator是Unity的加速器，提供本地网络代理和缓存服务。可以让Unity项目更新的等待时间减少90%，提高团队迭代效率。
用yum安装可能报一些莫名其妙的错误。比如：
error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory

执行：
yum install libX11 -y

 error while loading ]]></description><category></category></item><item><title><![CDATA[私有仓库Harbor的安装及部署]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/122704833</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/122704833</guid><author>fangfu123</author><pubDate>Wed, 26 Jan 2022 17:04:45 +0800</pubDate><description><![CDATA[标题私有仓库Harbor的安装及部署
官方地址：https://goharbor.io/
下载地址：https://github.com/goharbor/harbor/releases
注意：不要选择Harbor的1.7.5以下版本，有越权漏洞。
下载离线安装包：
wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz

解压并移动到指定目录：
tar xf h]]></description><category></category></item><item><title><![CDATA[mysql 8.0完整安装及配置教程]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/122704132</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/122704132</guid><author>fangfu123</author><pubDate>Wed, 26 Jan 2022 16:28:05 +0800</pubDate><description><![CDATA[mysql 8.0完整安装及配置教程
我这里服务器环境是Centos 7.9
下载mysql 8.0：
 [root@node19 ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.27-1.el7.x86_64.rpm-bundle.tar

查询已有安装包：
[root@node19 ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@node1]]></description><category></category></item><item><title><![CDATA[helm工作笔记二之语法]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/121556496</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/121556496</guid><author>fangfu123</author><pubDate>Fri, 26 Nov 2021 11:41:14 +0800</pubDate><description><![CDATA[helm工作笔记二之语法
default 表示默认值，如果没有定义则会被引用
quote 表示加引号。
-表示缩进换行，不然会有空格：
        {{- if eq .Values.test "123" }}
        test: a
        {{- else }}
        test: b
        {{- end }}

eq 是等于
判断语句只能支持eq
with可以指定变量范围：
      {{- with .Values.nodeSelector }}
     ]]></description><category></category></item><item><title><![CDATA[helm工作笔记一之命令]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/121555063</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/121555063</guid><author>fangfu123</author><pubDate>Fri, 26 Nov 2021 11:27:13 +0800</pubDate><description><![CDATA[helm是kubernetes的软件包管理器。
我们可以通过helm一键快速的在k8s上部署软件应用。并且支持应用的发布、升级、回档等功能。非常方便。
helm基础命令：
安装helm：
wget https://get.helm.sh/helm-v3.7.1-linux-amd64.tar.gz
tar zxvf helm-v3.7.1-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/

查看仓库信息：
helm repo list

执行更新：]]></description><category></category></item><item><title><![CDATA[mongodb批量update更新数据]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/120035736</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/120035736</guid><author>fangfu123</author><pubDate>Wed, 01 Sep 2021 11:18:09 +0800</pubDate><description><![CDATA[通常情况下我们在mongodb中用update语句来更新，如：
db.tables.update({"Package":"Secret"},{$set:{"rank":100}})

但是这样只能更新一条，非常的不方便。
如果要批量更新相同条件的所有语句。怎么办？
只需要加两个参数就可以了。如：
db.tables.update({"Package":"Secret"},{$set:{"rank":100}},false,true)

这样就实现了批量更新。
非常好用。

...]]></description><category></category></item><item><title><![CDATA[spec.ports[0].name: Required value]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/117995048</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/117995048</guid><author>fangfu123</author><pubDate>Thu, 17 Jun 2021 15:48:29 +0800</pubDate><description><![CDATA[spec.ports[0].name: Required value
这里复现一下这个问题，并记录一下解决方式。
我用kubernetes官网一个最简单的yaml做示例
vi MyApp.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 9376]]></description><category></category></item><item><title><![CDATA[ubuntu或centos系统下的磁盘扩容]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/117927656</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/117927656</guid><author>fangfu123</author><pubDate>Tue, 15 Jun 2021 16:30:17 +0800</pubDate><description><![CDATA[Ubuntu系统安装growpart相关工具：
sudo apt install cloud-guest-utils
sudo apt install xfsprogs

Centos系统安装growpart相关工具：
yum install cloud-utils-growpart
yum install xfsprogs

后面的命令都是一样的了。
我这里需要扩展的分区是/dev/vdb
执行下面的命令：
growpart /dev/vdb 1

这里的1就是指的，对/dev/vdb这个磁盘的第一个分区]]></description><category></category></item><item><title><![CDATA[docker容器中修改时间]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/115349838</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/115349838</guid><author>fangfu123</author><pubDate>Wed, 31 Mar 2021 14:41:52 +0800</pubDate><description><![CDATA[我们在docker容器中直接通过命令行修改时间会有下面这个报错：
date: can't set date: Operation not permitted

这是由于docker容器是基于Linux的Capability机制来进行隔离。
而修改系统时间是需要有SYS_TIME权限才可以修改，docker容器默认是没有这个权限的。所以我们可以在启动容器的时候，加一个参数
--cap-add SYS_TIME

比如
docker run -it --cap-add SYS_TIME --name docke]]></description><category></category></item><item><title><![CDATA[python遍历文件夹中所有文件（包括子目录）]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/112279725</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/112279725</guid><author>fangfu123</author><pubDate>Wed, 06 Jan 2021 16:20:01 +0800</pubDate><description><![CDATA[文件夹名称为workspace
python遍历这个文件夹中中所有文件，包括子目录的文件
打印出所有文件路径和文件后缀名
import os
dir="workspace"
for parent, dirnames, filenames in os.walk(dir):
    for filename in filenames:
        file_path = os.path.join(parent, filename)
        extensions = os.path.splitext(]]></description><category></category></item><item><title><![CDATA[shell脚本根据不同的压缩包类型(rar和zip)分别进行解压]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/111405841</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/111405841</guid><author>fangfu123</author><pubDate>Sat, 19 Dec 2020 15:47:59 +0800</pubDate><description><![CDATA[shell脚本根据不同的压缩包类型(rar和zip)分别进行解压，注意传参：
        case $1 in
                *.zip)
                unzip -qq $1 -d $Temp_Dir;;
                *.rar)
                unrar x $1 $Temp_Dir;;
                *)
                exit 1;;
        esac

再次压缩的命令：
ra]]></description><category></category></item><item><title><![CDATA[shell脚本截取字符串后缀名，文件名]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/111404407</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/111404407</guid><author>fangfu123</author><pubDate>Sat, 19 Dec 2020 14:41:31 +0800</pubDate><description><![CDATA[shell脚本截取字符串后缀名，文件名等。
举例说明，定义一个变量var，这个变量其实就是一个带路径的文件名：
var="/data/pro/mongod.log"

1、截取小数点.前面的部分：
echo ${var%.*}

返回结果：
/data/pro/mongod

2、截取文件后缀名：
echo ${var##*.}

返回结果：
log

3、截取文件名：
echo ${var##*/}

返回结果：
mongod.log

4、截取文件名不要后缀：
a=${var##*/}
echo ${a]]></description><category></category></item><item><title><![CDATA[mongoose报错处理DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/111044661</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/111044661</guid><author>fangfu123</author><pubDate>Fri, 11 Dec 2020 17:14:14 +0800</pubDate><description><![CDATA[今天遇到mongoose有两个报错，导致npm在docker中一直无法正常启动
第一个报错：
[egg-scripts] Got error when startup:
[egg-scripts] (node:64) DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version. To use the new Server Di]]></description><category></category></item><item><title><![CDATA[Phoenix的安装和配置]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/111030144</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/111030144</guid><author>fangfu123</author><pubDate>Fri, 11 Dec 2020 10:30:45 +0800</pubDate><description><![CDATA[Phoenix的安装和配置
目前最新的Phoenix版本是5.0.0-HBase-2.0，更新有点慢。
可以通过官方链接查看phoenix的最新版本：
http://phoenix.apache.org/download.html
以下步骤为工作笔记整理，共享给需要的人。
开始安装Phoenix运行的必要组件
下载5.0.0-HBase-2.0
wget http://mirror.bit.edu.cn/apache/phoenix/apache-phoenix-5.0.0-HBase-2.0/bin/ap]]></description><category></category></item><item><title><![CDATA[kubernetes将弃用docker，是时候拥抱podman了]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/110933732</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/110933732</guid><author>fangfu123</author><pubDate>Thu, 10 Dec 2020 10:35:15 +0800</pubDate><description><![CDATA[podman 新手入门
今天无意中看到kubernetes官网在12月2日发布了一篇文章（有点后知后觉），表示将在未来一年的版本中逐渐弃用docker容器支持，链接如下：
https://kubernetes.io/blog/2020/12/02/dont-panic-kubernetes-and-docker/
然后之前发行的centos8中都没有预装docker，而把podman作为默认的容器管理工具
podman官方网站地址：https://podman.io/
podman cli 中有87%的指令]]></description><category></category></item><item><title><![CDATA[修改Docker容器的时区为中国时区]]></title><link>https://blog.youkuaiyun.com/fangfu123/article/details/110821224</link><guid>https://blog.youkuaiyun.com/fangfu123/article/details/110821224</guid><author>fangfu123</author><pubDate>Mon, 07 Dec 2020 16:44:25 +0800</pubDate><description><![CDATA[修改Docker容器的时区为中国时区
1、首先要确认宿主机的时区是中国时区
在创建 Docker 容器时，加上 “-v /etc/localtime:/etc/localtime:ro” 参数，让容器使用宿主机的时间，容器时间与宿主机时间同步。比如创建一个 Tomcat 容器：
在创建Docker容器的时候，加上下面这个参数
-v /etc/localtime:/etc/localtime:ro

把本地宿主机的/etc/localtime映射到容器。
这其中ro表示这个volume是只读
2、如果是通过D]]></description><category></category></item></channel></rss>