Linux
01.系统维护
CPU
内存
drop_cache为什么有些不释放
swap交换分区
磁盘
lvm磁盘扩容
文件夹加密ecryptfs-utils
linux挂载ISCSI磁盘
创建lvm
fstab挂载文件系统
systemd.mount
存储故障
曲线为目录配置限额
lvm缩容
进程
如何找到某一个正在运行的进程?
CRIU进程快照
网络
TCP连接的10种状态
Ubuntu禁用ipv6
close_wait数量过多阻塞网络连接
IP地址与二进制转换
支持ACME的DNS服务器PowerDNS
系统
CentOS版本及对应默认内核版本
修改shell语言
系统启动流程
cgroup
CentOS7升级内核并开启BBR
配置内核参数优化linux
更新grub2默认启动的内核
CentOS-SCLo源
修改键盘映射
Debian12升级时内核编译错误
timesync(ntp)
内核
drop_caches
软件
更新openssl
GUI
Gnome Workspace Names
02.系统安全
Auditd审计服务配置
ssh登陆免公钥验证
恶意脚本处置
2023挖矿脚本m0nad
为ssh服务添加多因子认证
03.基本概念
Out Of Memory
70.QEMU
磁盘格式转换
80.LFS
90.常用脚本
使用except修改操作系统密码
init.d脚本模板
shell脚本判断参数数量
安装oh-my-zsh
systemd脚本模板
端口测试
适用于truenas的ipv6阿里云ddns脚本
更新nginx白名单
将文件改名为md5值
djvu转换为pdf并ocr
99.常用命令
man page中命令后的数字释义
tcpdump
nslookup
nc
rsync
awk
sed
echo
rm
tar
chage
auditctl
ausearch
ab
openssl
parted
find
date
firewall-cmd
sort
vmstat
nice-调整进程的优先级
top
taskset-进程绑定CPU核心
iptables
iostat
sysctl
tr
rpmbuild
转载nginx.spec含说明
安装使用rpmbuild
unpacked files found
grep
vimtutor
tlinux - tos
snmpwalk
chattr
本文档使用 MrDoc 发布
-
+
首页
适用于truenas的ipv6阿里云ddns脚本
```shell #!/bin/bash # alidns.sh #https://www.cnblogs.com/elvi/p/11663910.html #阿里云DNS api接口 shell 更改DNS解析 ############################## which dig &>/dev/null || { yum install -y bind-utils ; } || { echo "need to install dig";exit 1; } ##配置 host="mc" #主机名 domain="ihoiwan.com" #域名 ak="" #阿里云AccessKey ID sk="&" #阿里云Access Key Secret 后面多个 & timestamp=`date -u +"%Y-%m-%dT%H:%M:%SZ"` ############################## #hash签名使用 urlencode1() { local length="${#1}" i=0 out="" for i in $(awk "BEGIN { for ( i=0; i<$length; i++ ) { print i; } }") do local c="${1:$i:1}" case $c in [a-zA-Z0-9.~'&'=_-]) out="$out$c" ;; *) out="$out`printf '%%%02X' "'$c"`" ;; esac i=$(($i + 1)) done echo -n $out } urlencode2() { local length="${#1}" i=0 out="" for i in $(awk "BEGIN { for ( i=0; i<$length; i++ ) { print i; } }") do local c="${1:$i:1}" case $c in [a-zA-Z0-9.~_-]) out="$out$c" ;; *) out="$out`printf '%%%02X' "'$c"`" ;; esac i=$(($i + 1)) done echo -n $out } ############################## #函数 send_request() { args="AccessKeyId=$ak&Action=$1&Format=json&$2&Version=2015-01-09" StringToSign1="$(urlencode1 $args)" StringToSign2="GET&%2F&$(urlencode2 $StringToSign1)" hash=$(urlencode2 $(echo -n "$StringToSign2" | openssl dgst -sha1 -hmac $sk -binary | openssl base64)) echo "https://alidns.aliyuncs.com/?$args&Signature=$hash" RESULT=$(curl -k -s "https://alidns.aliyuncs.com/?$args&Signature=$hash") ## 2> /dev/null) echo $RESULT } query_recordid() { if [ "$host" = "@" ]; then echo `send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$domain&Timestamp=$timestamp"` else echo `send_request "DescribeSubDomainRecords" "SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&SubDomain=$host.$domain&Timestamp=$timestamp"` fi } update_record() { echo `send_request "UpdateDomainRecord" "RR=$host&RecordId=$1&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&Timestamp=$timestamp&Type=AAAA&Value=$ip"` } add_record() { echo `send_request "AddDomainRecord&DomainName=$domain" "RR=$host&SignatureMethod=HMAC-SHA1&SignatureNonce=$timestamp&SignatureVersion=1.0&Timestamp=$timestamp&Type=AAAA&Value=$ip"` } add_host() { #echo "新增解析" RESULT=`add_record` record_id=$(echo $RESULT | grep -o "RecordId\":\"[0-9]*\"" | grep -o "[0-9]*") [ "$record_id" = "" ] && { echo "$host.$domain $ip AddError";exit 1; } echo "$host.$domain $ip AddHost $(date +'%F %T')" } up_host() { #echo "更新解析" #查询RecordId RESULT=`query_recordid` record_id=`echo $RESULT |grep -o "RecordId\":\"[0-9]*\"" | grep -o "\"[0-9]*\"" |cut -d "\"" -f2` [ "$record_id" = "" ] && { echo "get record_id error,id=$record_id";exit 1; } #更新 RESULT=`update_record $record_id` record_id=`echo $RESULT |grep -o "RecordId\":\"[0-9]*\"" | grep -o "\"[0-9]*\"" |cut -d "\"" -f2` [ "$record_id" = "" ] && { echo "$host.$domain $ip UpError";exit 1; } echo "$host.$domain $ip UpHost $(date +'%F %T')" } ############################## #传参 主机 域名 ip alidns() { # var: host domain ip host="$1" domain=$2 ip=`ping6 -c1 $host.$domain|head -n1 | awk '{print $3}'` ip_dns=`ping6 -c1 $host.$domain|head -n1 | awk '{print $5}'` if [ $# -eq 1 ];then if [ -n "$ip_dns" ];then echo "$host.$domain " else echo "$host.$domain no found" fi elif [ $# -eq 2 ];then if [ "$ip" = "$ip_dns" ];then echo "$host.$domain $ip_dns" else # [ `echo $ip |grep -oE '[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}\.[0-9]{0,3}' |wc -l` -eq 0 ] && { echo "ip $ip error";exit 1; } [ "$ip_dns" = "" ] && { add_host ; } || { up_host ; } fi else echo "eg:$0 www abc.com " fi } alidns "$@" # 使用实例 增加或更新 *.abc.elven.vip ,通配符使用'' # bash alidns.sh '*.abc' elven.vip 192.168.18.18 ############################## # api https://help.aliyun.com/knowledge_detail/39863.html ############################## ```
zhangky
2021年11月17日 22:19
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码