日常运维记录

mysql:

dump备份:

mysqldump -R -E --single-transaction --hex-blob --opt  -h源IP -P源端口 -u源用户 -p源密码 数据库名 |gzip > /data/xxx.sql.gz  && gunzip < /data/xxx.sql.gz | mysql -h目标IP -P目标端口 -u目标用户 -p目标密码  数据库名

#参数说明:
-R 导出存储过程以及自定义函数
-E 导出事件
--single-transaction  此选项会将隔离级别设置为:REPEATABLE READ。并且随后再执行一条START TRANSACTION语句,让整个数据在dump过程中保证数据的一致性,这个选项对InnoDB的数据表很有用,且不会锁表。但是这个不能保证MyISAM表和MEMORY表的数据一致性
--hex-blob   将:BINARY, VARBINARY, BLOB, BIT类型导出为十六进制。 若不带,部分数据会乱码。
--opt 对数据库的信息充实等同于--add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, --disable-keys


查询数据库中,占用空间大的库
select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024/1024,2),' GB') as data_size,
concat(truncate(sum(index_length)/1024/1024/1024,2),' GB') as index_size
from information_schema.tables
group by TABLE_SCHEMA
order by data_length desc;


查询数据库中,占用空间大的表
select TABLE_NAME, concat(truncate(data_length/1024/1024/1024,2),' GB') as data_size,
concat(truncate(index_length/1024/1024/1024,2),' GB') as index_size
from information_schema.tables where TABLE_SCHEMA = '库名'
group by TABLE_NAME
order by data_length desc;

es:

        索引排序:http://x.x.x.x:9200/_cat/indices?v&s=store.size:desc

docker:

登陆:docker login --username=admin harbor.com.cn

打标签:docker tag centos7.6-openjdk1.8:1.2 harbor.com.cn/dev/docker tag centos7.6-openjdk1.8:1.2

上传: docker push harbor.com.cn/dev/docker tag centos7.6-openjdk1.8:1.2

拉取:docker pull harbor.com.cn/dev/docker tag centos7.6-openjdk1.8:1.2

导出镜像: docker save -o xxx.tar  image/x1/nginx:v1

导入镜像: docker load -i xxx.tar

查看当前docker 磁盘使用情况: docker system df  -v 

清理docker 无用镜像 :docker image prune -a

清理docker 无用镜像、磁盘、网络等:docker system prune

Redis:

正式redis禁止使用KEYS * 等命令,查询redis key 使用SCAN MATCH  命令,可写成脚本使用

#!/bin/bash

redisbase='/usr/local/bin'

##定义使用说明
usage(){
echo -e "\033[31m脚本功能:\033[0m"
echo -e " 用于扫描redis实例中所有的key"
echo -e " "
echo -e "\033[31m示例如下:\033[0m"
echo -e "\033[31m  执行        脚本名         库名 每次扫描redis卡槽数 匹配式\033[0m"
echo -e "  bash  scan_get_all_keys.sh  0  10000  'match cbh_20210728*'"
echo -e " "
echo -e "\033[31m注意事项:\033[0m"
echo -e " 1. 只能用于redis 2.8及以上版本,因为只有这些版本支持scan命令"
echo -e " 2. 第三个参数表示每次scan的key个数, 自行评估每次扫描卡槽数"
}

##参数判断
if [ "$1"x = x ] || ([ -n "$1" ] && [ "$2"x = x ] )
then
usage
exit
fi



#入参
i=0 #初始游标
host=xxx #主机
passwd=xxx #密码
port=6379 #端口
db=$1   #redis库
num=$2  #每次扫描卡槽数 
matchpattern=$3 #匹配表达式   match cbh_20270828* 



# 将反回值放入临时文件中,若该次扫描未找到对应的key,文本中记录为redis卡槽位与匹配的值,若该次扫描没值则为空
$redisbase/redis-cli -h $host -p $port -a $passwd -n $db scan $i ${matchpattern} count $num  > tmp.txt  2>>/dev/null

#取第一行游标
i=$(head -1 tmp.txt)

#获取文本总行数
tmpNum=$(cat tmp.txt | wc -l)

#查看除去第一行的所有keys
tail -$(($tmpNum -1)) tmp.txt >> tmp_all_keys.txt

#判断游标是否为0,遍历是否完成
while [ $i -ne 0 ] 
do
$redisbase/redis-cli -h $host -p $port -a $passwd -n $db scan $i ${matchpattern} count $num  > tmp.txt  2>>/dev/null
i=$(head -1 tmp.txt)
tmpNum=$(cat tmp.txt |wc -l)
tail -$(($tmpNum -1)) tmp.txt >> tmp_all_keys.txt
done

rm -rf tmp.txt
sed '/^$/d' tmp_all_keys.txt > all_keys.txt
rm -rf tmp_all_keys.txt


# 删除脚本  可能会因key太多,导致不能直接cat删除,使用sed 按部分删
# redis-cli -h 'x.x.x.x' -p 6379  -n 0 -a 'YOU_PASSWOD'  del $(sed -n '1,68'p all_keys.txt)

OSS Utile :

本地上传至OSS:

./ossutil i (access-key-id) -k (access-key-secret) -e (endpoint) cp -r E:\\test(本地文件夹) oss://(Buckets)/

k8s:

  限制文件上传大小:

nginx.ingress.kubernetes.io/proxy-body-size  1024m

Nginx:

日志文件统计IP:

 cat /var/log/nginx/access.log |grep -v -E "x.x.x.x" |awk '{print $5}'|sort -nr |uniq -c |sort -nr|head -50

常用系统初始化:

	sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
	systemctl stop firewalld.service && systemctl disable firewalld.service
	yum install wget -y
	mkdir -p /etc/yum.repos.d/backup && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup/
	
	#没有代理执行
	wget http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/Centos-7.repo
	wget http://mirrors.aliyun.com/repo/epel-7.repo -O /etc/yum.repos.d/epel-7.repo
	yum clean all && yum makecache && yum update -y
	yum install -y vim telnet iftop net-tools
	
	#有代理执行
	echo 'proxy=http://xx.xx.xx.xx:xx' >> /etc/yum.conf
	wget -e 'http_proxy=http://xx.xx.xx.xx:xx' http://mirrors.aliyun.com/repo/Centos-7.repo -O /etc/yum.repos.d/Centos-7.repo
	wget -e 'http_proxy=http://xx.xx.xx.xx:xx' http://mirrors.aliyun.com/repo/epel-7.repo -O /etc/yum.repos.d/epel-7.repo
	yum clean all && yum makecache && yum update -y
	yum install -y vim telnet iftop net-tools


    #同步服务器时间
    ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    #可以直接通外网:
    yum install ntpdate -y
    ntpdate ntp.aliyun.com
    #不能访问外网
    date -s "2022-03-04 00:00:00"
    #将系统时间同步至服务器硬件
    hwclock -w

Redis AOF文件过大,清理及重新AOF:由于服务器内存已不足以redis自动重写aof文件了,需要更大内存服务器来处理AOF文件

一、info 记录 keys值
二、bgsave触发写成rdb  -- 耗时
三、shutdown
四、修改配置文件,将aof 关闭,【appendonly no    三个save 取消注释】
五、移动备份aof文件
六、启动redis ,使其读到rdb,并使用info查看key值。  -- 短暂耗时
七、BGREWRITEAOF   将rdb转存aof【需要查看aof是否生成】  -- 耗时 
八、shutdown
九、修改配置文件,关闭rdb,开启aof 【appendonly yes    三个save 注释掉】
十、启动redis   -- 耗时

路由追踪

traceroute -n -T -p 8080 xx.xx.xx.xx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值