首页
Search
1
安装docker时报错container-selinux >= 2:2.74
125 阅读
2
rsync命令(可替代rm删除巨量文件)
102 阅读
3
docker 镜像加速器配置,daemon.json文件详解
90 阅读
4
使用国内镜像地址拉取k8s安装需要的images
79 阅读
5
Redhat 8版本安装ansible步骤
75 阅读
运维
自动化运维
数据库
容器与k8s
环境
云计算
脚本
登录
Search
标签搜索
命令
nginx
Mingrui
累计撰写
64
篇文章
累计收到
0
条评论
首页
栏目
运维
自动化运维
数据库
容器与k8s
环境
云计算
脚本
页面
搜索到
56
篇与
的结果
2024-01-29
linux三剑客之grep,sed,awk常用命令
本文详细介绍了grep,sed,awk的常用用法及选项,并额外介绍了find命令
2024年01月29日
54 阅读
0 评论
0 点赞
2024-01-29
nginx日志文件按日期分割脚本
{card-describe title="写在开头"}工作环境下,更建议直接使用系统自带的日志切割工具lograte来进行日志分割。此脚本只为练习用。{/card-describe}{dotted startColor="#ff6c6c" endColor="#1989fa"/}1.若日志文件可能存在往日的访问信息,可以运行下面的脚本.该脚本先判断日志文件中是否存在过往的访问信息,如果存在,先处理这些过往信息。处理方式是按照日期生成文本文档,并写入对应的访问信息。然后清空日志文件,等待新的记录写入。如果不存在过往访问记录,则直接将该文件按日期重命名,然后通知nginx重新打开日志文件。说明:如果原始的日志文件非常大,可以先用split命令对文件进行切割,然后再逐个处理切割出来的小文件,以减轻服务器的压力。#!/bin/bash #将日志文件中未按日期分割的历史记录进行分割。 #获取日志文件中的日期信息,并将其写入临时文件 log_dir=/opt/access.log awk '{print $4}' $log_dir | awk -F: '{print $1}' | sed 's/\[//' | sort -u -t/ -k3 -k1 > /opt/log_date.txt #先判断日志文件中是否存在往期的日志信息,如果存在,先处理历史日志信息。 sum=`wc -l < /opt/log_date.txt` if [ $sum -gt 1 ];then #通过for循环,将历史日志记录按日期分别记录到指定的文件内。 for i in `cat /opt/log_date.txt` do dir=`echo $i| sed 's#/#-#g' ` grep $i $log_dir >> /opt/a/$dir-access.log done > $log_dir else dir=`cat /opt/log_date.txt| sed 's#/#-#g' ` mv $log_dir /opt/a/$dir-access.log kill -USR1 $(cat /var/run/nginx.pid) #通过USER1信号通知nginx重新打开日志文件 $nginx_sbin force-reload fi {lamp/}一个简单的分割脚本#!/bin/bash Dateformat=`date +%Y%m%d` Basedir="/usr/local/nginx" Nginxlogdir="$Basedir/logs" Logname="access_www" [ -d $Nginxlogdir ] && cd $Nginxlogdir || exit 1 [ -f ${Logname}.log ] || exit 1 mv ${Logname}.log ${Dateformat}_${Logname}.log $Basedir/sbin/nginx -s reload {lamp/}一个非常耗时的日志分割脚本cat access.log | while read i a b t c do date_dir=`echo $t|sed 's#\[##'|sed 's#\/#-#g'|cut -d: -f1` echo $i $a $b $t $c >> /tmp/log/$date_dir-log.txt date=`echo $date_dir| sed 's#-#\.#g'` sed -i "/$i.*$date/d" access.log done
2024年01月29日
56 阅读
0 评论
0 点赞
2024-01-29
虚拟机初始化配置信息
1.配置yum源本地源#将光盘镜像挂载到/dvd/目录上 mount /dev/cdrom /dvd #将挂载信息写入配置文件,永久挂载(重启后依旧生效) sed -i '$a/dev/cdrom /dvd iso9660 defaults 0 0 ' /etc/fstab #-i选项:修改目标文件 #$a:在最后一行下面追加内容 #删除无用的yum配置信息 rm -rf /etc/yum.repos.d/*.repo #修改yum配置信息 cat >/etc/yum.repos.d/local.repo<<EOF [localrepo] name=centos baseurl=file:///dvd enabled=1 gpgcheck=0 EOF #[localrepo]:yum源名称 #name:yum源描述信息 #baseurl:yum仓库地址 #enabled:是否启用此yum源。1启用0禁用 #gpgcheck:是否验证待安装的RPM包。1启用0禁用 #若启用gpgcheck,则需指定验证所用秘钥文件的地址。 #需要添加gpgkey字段。如:gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-7 yum clean all yum makecache yum repolist 网络源#腾讯云 wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo #阿里云 Epel软件包:Extra Packages for Enterprise Linux, 是Enterprise Linux(RHEL、CentOS)中经常用到的包。 #阿里云镜像仓库:https://developer.aliyun.com/mirror/ #阿里云RepoForge镜像地址:https://developer.aliyun.com/mirror/repoforge/ #RepoForge镜像:Repoforge是RHEL系统下的软件仓库,拥有10000多个软件包,被认为是最安全、最稳定的一个软件仓库。Epel软件包地址 {collapse}{collapse-item label="RepoForge配置方式" open}向系统中添加 Repoforge 的 GPG 公钥: rpm --import https://mirrors.aliyun.com/repoforge/RPM-GPG-KEY.dag.txt 运行下列命令sudo cat > /etc/yum.repos.d/rpmforge.repo << EOF [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = https://mirrors.aliyun.com/repoforge/redhat/el7/en/$basearch/rpmforge mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge enabled = 1 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = https://mirrors.aliyun.com/repoforge/redhat/el7/en/$basearch/extras mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge-extras enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-testing] name = RHEL $releasever - RPMforge.net - testing baseurl = https://mirrors.aliyun.com/repoforge/redhat/el7/en/$basearch/testing mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge-testing enabled = 0 protect = 0 gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 EOF 官方主页:http://repoforge.org/{/collapse-item}{/collapse}2.修改网卡信息修改网卡命名规则,以eth0开始,将网卡命名为eth0,eth1,eth2...# grub内核引导程序 vim /etc/default/grub GRUB_CMDLINE_LINUX="…….. quiet net.ifnames=0 biosdevname=0" #在GRUB_CMDLINE_LINUX字段末尾添加net.ifnames,bisodevname字段 #重新生成网卡命名的规则 grub2-mkconfig -o /boot/grub2/grub.cfg配置网卡信息 #查看网卡命名信息 nmcli connection show #给网卡添加别名 nmcli connection add type ethernet ifname eth0 con-name eth0 #修改ip信息 nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.88.1/24 ipv4.gateway 192.168.88.200 connection.autoconnect yes #激活网卡 nmcli connection up eth0 #或者使用ifdowd ifup 命令 didown eth0 && ifup eth0网卡配置文件地址:/etc/sysconfig/network-scripts/3.安装常用软件包#安装vim yum -y install vim #安装支持tab键的软件包,装好之后需重启生效 yum -y install bash-completion #安装网络相关工具 yum -y install net-tools #安装支持killall命令的软件 yum -y install psmisc
2024年01月29日
60 阅读
0 评论
0 点赞
2024-01-26
docker 镜像加速器配置,daemon.json文件详解
背景:docker默认的镜像服务器是dockerhub,但是在国内从dockerhub拉取镜像时比较不稳定(无法访问,加载速度慢,连接中断等),因此需要配置国内的镜像加速器。{callout color="#f0ad4e"}Docker官方提供的中国镜像库:https://registry.docker-cn.com{/callout}{callout color="#f0ad4e"}阿里云提供的镜像加速器:https://yaia9b6l.mirror.aliyuncs.com该加速器地址需要登录阿里云获取,在容器镜像服务-镜像工具-镜像加速器栏目下面。{/callout}vim /etc/docker/daemon.json { "registry-mirrors": ["https://yaia9b6l.mirror.aliyuncs.com"] }systemctl daemon-reload #重新加载配置信息 systemctl restart docker #重启docker使配置信息生效。 查看镜像加速配置是否生效docker info | grep Mirrors -A1 Registry Mirrors: https://yaia9b6l.mirror.aliyuncs.com/{dotted startColor="#ff6c6c" endColor="#1989fa"/}{card-default label="daemon.json" width="100%"}daemon.json文件是docker的守护程序dockerd的配置文件。dockerd是管理容器的持久性进程。一般情况下配置文件 daemon.json中配置的项目参数,在启动参数中同样适用。有些参数的名称可能不一样(具体可以查看官方文档)。但需要注意的一点,配置文件中如果已经有某个配置项,则无法在启动参数中增加,否则会出现冲突的错误。{/card-default}来自官网的示例{ "allow-nondistributable-artifacts": [], "api-cors-header": "", "authorization-plugins": [], "bip": "", "bridge": "", #标志设置docker0为默认桥接网络。它是在您安装Docker时自动创建的。 #如果未使用默认值,则必须手动创建和配置网桥或仅将其设置为“none”:--bridge=none "builder": { "gc": { "enabled": true, "defaultKeepStorage": "10GB", "policy": [ { "keepStorage": "10GB", "filter": ["unused-for=2200h"] }, { "keepStorage": "50GB", "filter": ["unused-for=3300h"] }, { "keepStorage": "100GB", "all": true } ] } }, "cgroup-parent": "", "containerd": "/run/containerd/containerd.sock", "containerd-namespace": "docker", "containerd-plugin-namespace": "docker-plugins", "data-root": "", "debug": true, #启用debug的模式,启用后,可以看到很多的启动信息。默认false "default-address-pools": [ { "base": "172.30.0.0/16", "size": 24 }, { "base": "172.31.0.0/16", "size": 24 } ], "default-cgroupns-mode": "private", "default-gateway": "", "default-gateway-v6": "", "default-network-opts": {}, "default-runtime": "runc", #如果在创建容器时未指定,则更新要使用的运行时。 #它默认为“default”,这是官方docker软件包附带的运行时。 "default-shm-size": "64M", "default-ulimits": { "nofile": { "Hard": 64000, "Name": "nofile", "Soft": 64000 } }, "dns": [], # 设定容器DNS的地址,在容器的 /etc/resolv.conf文件中可查看。 "dns-opts": [], # 容器 /etc/resolv.conf 文件,其他设置 "dns-search": [], # 设定容器的搜索域,当设定搜索域为.example.com 时,在搜索一个名为host的主机时, #DNS不仅搜索host,还会搜索host.example.com。 #注意:如果不设置, Docker 会默认用主机上的 /etc/resolv.conf 来配置容器。 "exec-opts": [], "exec-root": "", "experimental": false, "features": {}, "fixed-cidr": "", "fixed-cidr-v6": "", "group": "", #Unix套接字的属组,仅指/var/run/docker.sock "hosts": [], #指定Docker守护程序将侦听客户端连接的位置。 #如果未指定,则默认为/var/run/docker.sock。 "proxies": { "http-proxy": "http://proxy.example.com:80", "https-proxy": "https://proxy.example.com:443", "no-proxy": "*.test.example.com,.example.org", }, "icc": false, "init": false, "init-path": "/usr/libexec/docker-init", "insecure-registries": [], #配置docker的私库地址 "ip": "0.0.0.0", "ip-forward": false, #默认true, 启用 net.ipv4.ip_forward , #进入容器后使用 sysctl -a | grepnet.ipv4.ip_forward 查看 "ip-masq": false, "iptables": false, "ip6tables": false, "ipv6": false, "labels": [], # docker主机的标签,很实用的功能,例如定义:–label nodeName=host-121 "live-restore": true, "log-driver": "json-file", "log-level": "", "log-opts": { "cache-disabled": "false", "cache-max-file": "5", "cache-max-size": "20m", "cache-compress": "true", "env": "os,customer", "labels": "somelabel", "max-file": "5", "max-size": "10m" }, "max-concurrent-downloads": 3, #它更新每次拉动的最大并发下载量。 "max-concurrent-uploads": 5, #它更新每次推送的最大并发上传次数。 "max-download-attempts": 5, "mtu": 0, "no-new-privileges": false, "node-generic-resources": [ "NVIDIA-GPU=UUID1", "NVIDIA-GPU=UUID2" ], "oom-score-adjust": 0, "pidfile": "", "raw-logs": false, "registry-mirrors": [], #镜像加速的地址,增加后在 docker info中可查看。 "runtimes": { "cc-runtime": { "path": "/usr/bin/cc-runtime" }, "custom": { "path": "/usr/local/bin/my-runc-replacement", "runtimeArgs": [ "--debug" ] } }, "seccomp-profile": "", "selinux-enabled": false, #默认 false,启用selinux支持 "shutdown-timeout": 15, "storage-driver": "", "storage-opts": [], "swarm-default-advertise-addr": "", "tls": true, #默认 false, 启动TLS认证开关 "tlscacert": "", #默认 ~/.docker/ca.pem,通过CA认证过的的certificate文件路径 "tlscert": "", #默认 ~/.docker/cert.pem ,TLS的certificate文件路径 "tlskey": "", #默认~/.docker/key.pem,TLS的key文件路径 "tlsverify": true,#默认false,使用TLS并做后台进程与客户端通讯的验证 "userland-proxy": false, "userland-proxy-path": "/usr/libexec/docker-proxy", "userns-remap": "" }
2024年01月26日
90 阅读
0 评论
0 点赞
2024-01-25
k8s管理节点安装时应答文件解析
{callout color="#f0ad4e"}该yaml文件可用kubeadm命令生成模版,然后基于此模版进行修改。{/callout}kubeadm config print init-defaults > init.yaml{dotted startColor="#ff6c6c" endColor="#1989fa"/}--- #TLS Bootstraping(证书引导) apiVersion: kubeadm.k8s.io/v1beta3 bootstrapTokens: - groups: - system:bootstrappers:kubeadm:default-node-token token: abcdef.0123456789abcdef #令牌名称 ttl: 24h0m0s #令牌存活时长,到期后令牌自动销毁。设为0则令牌长期有效。 usages: - signing - authentication kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.1.50 #管理节点的IP地址 bindPort: 6443 #监听的端口信息 nodeRegistration: criSocket: /var/run/dockershim.sock #Runtime的socket地址 imagePullPolicy: IfNotPresent #镜像下载规则 name: master #管理节点的名称 taints: null #污点 --- apiServer: timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta3 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes #集群名称 controllerManager: {} dns: {} etcd: local: dataDir: /var/lib/etcd #etcd数据库位置 imageRepository: registry:5000/k8s #镜像仓库地址 kind: ClusterConfiguration kubernetesVersion: 1.22.5 #版本信息 networking: #网络信息 dnsDomain: cluster.local podSubnet: 10.244.0.0/16 #pod地址段(新添加的信息) serviceSubnet: 10.245.0.0/16 #service地址段 scheduler: {} --- kind: KubeProxyConfiguration #启用IPVS模式 apiVersion: kubeproxy.config.k8s.io/v1alpha1 mode: ipvs ipvs: strictARP: true --- kind: KubeletConfiguration apiVersion: kubelet.config.k8s.io/v1beta1 cgroupDriver: systemd #设置kubelet使用的Croup驱动模式为systemd{callout color="#f0ad4e"}bootstraping机制介绍:Master apiserver启用TLS认证后,Node节点kubelet和kube-proxy要与kube-apiserver进行通信,必须使用CA签发的有效证书才可以,当Node节点很多时,这种客户端证书颁发需要大量工作,同样也会增加集群扩展复杂度。为了简化流程,Kubernetes引入了TLS bootstraping机制来自动颁发客户端证书,kubelet会以一个低权限用户自动向apiserver申请证书,kubelet的证书由apiserver动态签署。{/callout}
2024年01月25日
59 阅读
0 评论
0 点赞
1
...
9
10
11
12