首页
Search
1
v2ray异常错误之二
3,310 阅读
2
linux时区设置
2,698 阅读
3
DB2常用操作
2,173 阅读
4
websphere修改jvm内存xmx和xms
1,929 阅读
5
nfs客户端文件属主为nobody的现象
1,552 阅读
技术
生活
运动
游戏
电影
登录
Search
标签搜索
docker
linux
troubleshooting
nginx
secure
truenas
mysql
windows
python
esxi
docker swarm
oracle
zabbix
tomcat
blog
dsm
群晖
rpa
freenas
db
yuc
累计撰写
291
篇文章
累计收到
0
条评论
首页
栏目
技术
生活
运动
游戏
电影
页面
搜索到
289
篇与
的结果
2022-07-08
redis6.0.6编译失败的处理
0x1 make时候错误如下 server.c:5191:24: error: ‘struct redisServer’ has no member named ‘masterhost’ if (!server.masterhost) { ^ server.c:5201:19: error: ‘struct redisServer’ has no member named ‘supervised_mode’ if (server.supervised_mode == SUPERVISED_SYSTEMD) { ^ server.c:5208:15: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024) { ^ server.c:5208:39: error: ‘struct redisServer’ has no member named ‘maxmemory’ if (server.maxmemory > 0 && server.maxmemory < 1024*1024) { ^ server.c:5209:176: error: ‘struct redisServer’ has no member named ‘maxmemory’ serverLog(LL_WARNING,"WARNING: You specified a maxmemory value that is less than 1MB (current value is %llu bytes). Are you sure this is what you really want?", server.maxmemory); ^ server.c:5212:31: error: ‘struct redisServer’ has no member named ‘server_cpulist’ redisSetCpuAffinity(server.server_cpulist); ^ server.c: In function ‘hasActiveChildProcess’: server.c:1480:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ server.c: In function ‘allPersistenceDisabled’: server.c:1486:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ server.c: In function ‘writeCommandsDeniedByDiskError’: server.c:3826:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ server.c: In function ‘iAmMaster’: server.c:5000:1: warning: control reaches end of non-void function [-Wreturn-type] } ^ make[1]: *** [server.o] Error 1 0x2 开始以为是jemalloc版本问题,手动下载了jemalloc版本并且安装,但是仍然报错。又尝试修改内存分配器为glibc的 MALLOC=libc,结果同样报错。通过搜索后发现是gcc版本太低,高版本的编译要求! 0x3 安装9以上的gcc yum -y install centos-release-scl yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile 安装后最好永久写入环境变量,防止运行时也需要,也不影响默认环境
2022年07月08日
826 阅读
0 评论
0 点赞
2022-07-04
megacli的一些常用命令
0x0 raid是否降级,如果降级那么有硬件问题 /opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL | grep 'State' 如果E为空N/A,可以用空代替,比如查看指定盘信息 /opt/MegaRAID/MegaCli/MegaCli64 -pdinfo -physdrv[E:S] -a0 /opt/MegaRAID/MegaCli/MegaCli64 -pdinfo -physdrv[:7] -a0 | more 查看 raid 卡日志 megacli -FwTermLog -Dsply -aALL 显示适配器个数 megacli -adpCount 显示适配器时间 megacli -AdpGetTime –aALL 显示所有适配器信息 megacli -AdpAllInfo -aAll 显示所有逻辑磁盘组信息 megacli -LDInfo -LALL -aAll 查 raid 卡信息 (生产商、电池信息及所支持的 raid 级别) megacli -AdpAllInfo -aALL |grep -E "Product Name|BBU|Memory Size|RAID Level Supported" 查看虚拟化 (vd) 和物理盘 (pd) 的信息,比如查看物理硬盘数,是否有硬盘 offline 或者 degraded megacli -AdpAllInfo -aALL |grep -E "Device Present" -A9 查看硬盘是否 online megacli -PDList -aALL |grep "Firmware state" 查看硬盘是否存在物理错误 (error 不为 0,可能会有硬盘故障即将发生) megacli -PDList -aALL |grep -i error 查看电池信息 (电池类型、电池状态、充电状态、温度等) megacli -AdpBbuCmd -aAll raid 卡个数 megacli –adpCount 检测磁盘 ID 注意,该 ID 值用于标注磁盘 megacli -PDlist -aALL | grep "ID" | uniq 显示所有逻辑磁盘组信息 (做了几组 raid,raid cache 的默认和当前策略,做好 raid 后的虚拟盘容量) megacli -LDInfo -LALL -aAll 显示所有物理盘 (物理磁盘个数、大小、是否存在 error) megacli -PDList -aAll 显示所有物理盘物理错误 megacli -PDList -aAll |grep -i error 查看充电状态 megacli -AdpBbuCmd -GetBbuStatus -aALL |grep 'Charger Status' 显示 BBU 状态信息,比如电池是否,如果 issohgood 为 Yes 为正常,No 为异常 megacli -AdpBbuCmd -GetBbuStatus -aALL|grep -i issohgood 显示 BBU 状态信息 megacli -AdpBbuCmd -GetBbuStatus -aALL 显示 BBU 容量信息 megacli -AdpBbuCmd -GetBbuCapacityInfo -aALL 显示 BBU 设计参数 megacli -AdpBbuCmd -GetBbuDesignInfo -aALL 显示当前 BBU 属性 megacli -AdpBbuCmd -GetBbuProperties -aALL 显示 Raid 卡型号,cache 大小、Raid 设置,cache 策略、Disk 相关信息 megacli -cfgdsply -aALL |egrep "PDs|VDs|Product Name|Memory|BBU:" 查看磁盘缓存策略 (查看 vd 的) megacli -LDGetProp -Cache -LALL -aALL 查看磁盘缓存策略 (查看 pd 的) megacli -LDGetProp -DskCache -LALL -aALL 查看物理磁盘重建进度 megacli -PDRbld -ShowProg -PhysDrv \[1:5\] -a0 以动态可视化文字界面显示 megacli -PDRbld -ProgDsply -PhysDrv \[1:5\] -a0 关闭缓存 megacli -LDSetProp -DisDskCache -L0 -a0 显示 Rebuid 进度 megacli -PDRbld -ShowProg -physdrv\[20:2\] -aALL 查看 E S megacli -PDList -aAll -NoLog | grep -Ei "(enclosure|slot)" 查看所有硬盘的状态 megacli -PDList -aAll -NoLog 查看所有 Virtual Disk 的状态 megacli -LdPdInfo -aAll -NoLog 在线做 Raid megacli -CfgLdAdd -r0\[0:11\] WB NORA Direct CachedBadBBU -strpsz64 -a0 -NoLog megacli -CfgLdAdd -r5 \[12:2,12:3,12:4,12:5,12:6,12:7\] WB Direct -a0 点亮指定硬盘 (定位) megacli -PdLocate -start -physdrv\[252:2\] -a0 清除 Foreign 状态 megacli -CfgForeign -Clear -a0 查看 RAID 阵列中掉线的盘 megacli -pdgetmissing -a0 替换坏掉的模块 megacli -pdreplacemissing -physdrv\[12:10\] -Array5 -row0 -a0 手动开启 rebuid megacli -pdrbld -start -physdrv\[12:10\] -a0 查看 Megacli 的 log megacli -FwTermLog dsply -a0 > adp2.log 设置 HotSpare megacli -pdhsp -set \[-Dedicated \[-Array2\]\] \[-EnclAffinity\] \[-nonRevertible\] -PhysDrv\[4:11\] -a0 megacli -pdhsp -set \[-EnclAffinity\] \[-nonRevertible\] -PhysDrv\[32:1}\] -a0 关闭 Rebuild megacli -AdpAutoRbld -Dsbl -a0 设置 rebuild 的速率 megacli -AdpSetProp RebuildRate -30 -a0 创建一个 raid5 阵列,由物理盘 2,3 4 构成,该阵列的热备盘是物理盘 5 megacli-CfgLdA d -r5 \[1:2,1:3,1:4\] WB Direct -Hsp\[1:5\] -a0 创建阵列,不指定热备 megacli-CfgLdA d -r5 \[1:2,1:3,1:4\] WB Direct -a0 删除阵列 megacli-CfgLdDel -L1 -a0 在线添加磁盘 megacli-LDRecon -Star - 5 Ad -PhysDrv\[1:4\] -L1 -a0 阵列创建完后,会有一个初始化同步块的过程,可以看 其进度。 megacli-LDInit -ShowProg -LA L -aAL 以动态可视化文字界面显示 megacli-LDInit -ProgDsply -LA L -aAL 查看阵列后台初始化进度 megacli-LDBI -ShowProg -LA L -aAL 或者以动态可视化文字界面显示 megacli-LDBI -ProgDsply -LA L -aAL 指定第 5 块盘作为全局热备 megacli-PDHSP -Set \[-EnclAf in ty\] \[-no Rev rtible\] -PhysDrv\[1:5\] -a0 指定为某个阵列的专用热备 megacli-PDHSP -Set \[-Dedicated \[-Ar ay1\] \[-EnclAf in ty\] \[-no Rev rtible\] -PhysDrv\[1:5\] -a0 删除全局热备 megacli-PDHSP -Rmv -PhysDrv\[1:5\] -a0 将某块物理盘下线 / 上线 megacli -PDOffline -PhysDrv \[1:4\] -a0 megacli -PDOnline -PhysDrv \[1:4\] -a0 查看物理磁盘重建进度 megacli-PDRbld -ShowProg -PhysDrv \[1:5\] -a0 或者以动态可视化文字界面显示 megacli -PDRbld -ProgDsply -PhysDrv \[1:5\] -a0 查看做 raid 的情况 megacli -LDInfo -Lal -aAL | grep -E "RAID Lev l|Strip Size|NumberOf Drives|Span Depth|^Size" 取 Enclosure Device ID uiqnum= megacli -PDlist -aAL | grep "ID" | uniq |awk -F: '{print $2}' | awk '{print $1}' 取 Slot Number disknum=megacli -PDList -aAL | grep -E "DISK GROUP|Slot Number|postion:|Firmware sta e:" | grep Slot | awk -F\[: \] '{print $NF}' 算出总数 diskto al=megacli -PDList -aAL | grep -E "DISK GROUP|Slot Number|postion:|Firmware sta e:" | grep Slot | awk -F\[: \] '{print $NF}' | wc -l ar ay=($disknum) 查看当前 raid 缓存状态,raid 缓存状态设置为 wb 的话要注意电池放电事宜,设置电池放电模式为自动学习模式 megacli -ldgetprop -dskcache -lall -aall raid 电池设置相关 # 查看电池状态信息 (Display BBU Status Information) megacli -AdpBbuCmd -GetBbuStatus -aN|-a0,1,2|-aALL megacli -AdpBbuCmd -GetBbuStatus -aALL 查看电池容量(Display BBU Capacity Information) megacli -AdpBbuCmd -GetBbuCapacityInfo -aN|-a0,1,2|-aALL megacli -AdpBbuCmd -GetBbuCapacityInfo –aALL 查看电池设计参数 (Display BBU Design Parameters) megacli -AdpBbuCmd -GetBbuDesignInfo -aN|-a0,1,2|-aALL megacli -AdpBbuCmd -GetBbuDesignInfo –aALL 查看电池属性(Display Current BBU Properties) megacli -AdpBbuCmd -GetBbuProperties -aN|-a0,1,2|-aALL megacli -AdpBbuCmd -GetBbuProperties –aALL 设置电池为学习模式为循环模式(Start BBU Learning Cycle) megacli -AdpBbuCmd -BbuLearn -aN|-a0,1,2|-aALL 查询 raid 级别,磁盘数量,容量,条带大小。 megacli -cfgdsply -aALL |grep Policy 查询控制器 cache 策略 megacli -LDSetProp WB -L0 -a0 设置 write back 功能 megacli -LDSetProp CachedBadBBU -L0 -a0 设置即使电池坏了还是保持 WB 功能 megacli -AdpBbuCmd -BbuLearn a0 手动充电 megacli -FwTermLog -Dsply -aALL 显示适配器个数: megacli -adpCount 显示所有适配器信息: megacli -AdpAllInfo -aAll 显示所有逻辑磁盘组信息: megacli -LDInfo -LALL -aAll 显示所有的物理信息: megacli -PDList -aAll Media 查看充电状态: megacli -AdpBbuCmd -GetBbuStatus -aALL 显示 BBU (后备电池) 状态信息: megacli -AdpBbuCmd -GetBbuStatus -aALL 显示 BBU 容量信息: megacli -AdpBbuCmd -GetBbuCapacityInfo -aALL 显示 BBU 设计参数: megacli -AdpBbuCmd -GetBbuDesignInfo -aALL 显示当前 BBU 属性: megacli -AdpBbuCmd -GetBbuProperties -aALL 显示 Raid 卡型号,Raid 设置,Disk 相关信息: megacli -cfgdsply -aALL 查看 Cache 策略设置: megacli -cfgdsply -aALL |grep -i Policy 查看充电进度百分比: megacli -AdpBbuCmd -GetBbuStatus -aALL 参考文档: https://jueee.github.io/2020/11/2020-11-26-RAID%E7%AE%A1%E7%90%86%E5%B7%A5%E5%85%B7MegaCli%E7%9A%84%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8/ https://www.cnblogs.com/machangwei-8/p/10403626.html
2022年07月04日
833 阅读
0 评论
0 点赞
2022-06-29
测试非标准端口dns服务器
dns服务器默认端口是53,如果经过了端口转发等,可能不是53端口,以1053为例,应该怎么测试此dns服务器是否可用呢?可以使用dig dig -t A www.baidu.com @x.x.x.x -p 1053 还可以指定使用tcp协议解析 dig -t A www.baidu.com @x.x.x.x -p 1053 +tcp
2022年06月29日
862 阅读
0 评论
0 点赞
2022-06-29
docker的一些小技巧
swarm 默认网络无法获取到客户端真实的ip,如果nginx/dns等服务需要真实ip,那么可以使用host模式 -p mode=host,target=80,published=80 以上使用host模式后只有容器所在的节点能够提供服务了,无法从任意节点定位,可以设置成全局每个节点都运行此服务来解决,最后设置vip,由vip的节点来提供服务 --mode=global 如果在多副本的创建过程中某个节点失败了,获取不到镜像,虽然手动拉取了,但是一直也不成功,这时候可以中断,其他节点是运行成功的,状态参考如下: [root@node1 bind]# docker service ps bind9 ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS pvuko661l0di bind9.ef1dsojktw8h14ijgnvruuxn5 internetsystemsconsortium/bind9:9.18 node1 Running Running 19 minutes ago *:53->53/udp,*:53->53/udp,*:53->53/tcp,*:53->53/tcp 5vh5fqwy8lyi bind9.lp5ohtozpxy7uq3u3dbtysgaw internetsystemsconsortium/bind9:9.18 node5 Running Running 19 minutes ago *:53->53/tcp,*:53->53/tcp,*:53->53/udp,*:53->53/udp k6f6xnhpsmtk bind9.oow0gju8qlwr64jkd0r8l3283 internetsystemsconsortium/bind9:9.18 node4 Running Running 19 minutes ago *:53->53/udp,*:53->53/udp,*:53->53/tcp,*:53->53/tcp q14rzr9qfzrp bind9.pxf8dpz671vtbqv8gx8dw1tgl internetsystemsconsortium/bind9:9.18 node6 Running Running 19 minutes ago *:53->53/tcp,*:53->53/tcp,*:53->53/udp,*:53->53/udp jz81g74ok3bj bind9.rs1b1hsnc7zd7x081xuyahy8g internetsystemsconsortium/bind9:9.18 node7 Running Running 19 minutes ago *:53->53/tcp,*:53->53/tcp,*:53->53/udp,*:53->53/udp zacx3zxwyc2j bind9.yu17kuix56z3aemh63ij4hedy internetsystemsconsortium/bind9:9.18 node2 Shutdown Rejected 19 minutes ago "No such image: harbor.xxx.…" 5ry1tkgedliv bind9.zk4e1d1eyzn9kmarxx2c6yh5b internetsystemsconsortium/bind9:9.18 localhost.localdomain Running Running 9 minutes ago *:53->53/udp,*:53->53/udp,*:53->53/tcp,*:53->53/tcp 那么该如何让这个节点运行起来呢,经测试执行update即可 docker service update bind9 如果某个服务的配置文件更新,又不想重启docker,或者设置副本为0再启用,或者进入容器内重启服务,使用update又无效果,因为此服务本身的属性没有变化。则可以强制更新 docker service update bind9 --force
2022年06月29日
953 阅读
0 评论
0 点赞
2022-06-28
常用的服务日志切割logrotate
定时任务 0 2 * * * /usr/sbin/logrotate -f /usr/local/nginx 虽然切割可以放到logrotate的目录下会自动调度,但是也可以自定义目录然后手动调用 nginx /usr/local/tengine/logs/*.log { compress daily copytruncate rotate 180 olddir /usr/local/tengine/oldlogs missingok dateext postrotate /bin/kill -HUP `cat /usr/local/tengine/logs/nginx.pid 2> /dev/null` 2> /dev/null || true endscript } nginx支持以下信号,感觉USER1更好,对nginx影响最小 TERM, INT fast shutdown QUIT graceful shutdown HUP changing configuration, keeping up with a changed time zone (only for FreeBSD and Linux), starting new worker processes with a new configuration, graceful shutdown of old worker processes USR1 re-opening log files USR2 upgrading an executable file WINCH graceful shutdown of worker processes tomcat /data/succezsoft/tomcat/logs/catalina.out { compress daily copytruncate create 0644 root root rotate 180 olddir /data/succezsoft/tomcat/oldlogs missingok dateext sharedscripts postrotate chmod 644 /data/succezsoft/tomcat/oldlogs/* endscript } 这里只切割了catalina.out,如果想要切割访问日志,可以通配或者写两个,另外执行了修改权限的命令,因为这里是调用的root执行切割,其他用户没有权限访问了,所以归档文件给读个权限 手动滚动 logrotate配置文件写好后,一般是logrotate服务来调度,但是此服务的默认调度时间是凌晨2点左右,要想验证成功肯定不能等到两点,所以可以通过命令的方式来立即执行: # --force 可以简写为 -f logrotate --force /etc/logrotate.d/nginx 有了手动触发滚动,那么我们甚至不需要把配置文件放入logrotate的配置目录下,可以选择使用命令配合crontab的方式定时执行 logrotate调度时间修改 sed -i 's/START_HOURS_RANGE=3-22/START_HOURS_RANGE=1-3/g' /etc/anacrontab sed -i 's/RANDOM_DELAY=45/RANDOM_DELAY=15/g' /etc/anacrontab
2022年06月28日
743 阅读
0 评论
0 点赞
1
...
46
47
48
...
58