服务器上写了一个自动更新ipv6到dynv6域名的脚本,发现不工作,排查思路如下:
- 检查脚本权限,是否有可执行权限,如果没有就添加:
chmod +x test.sh
- 检查脚本是否可执行:
sh test.sh
- 查看cron是否运行
systemctl status crond # 有的可能是cron
如果是有active字样,表示状态正常
如果不正常,重启一下:
systemctl restart crond # 有的可能是cron
- 检查日志,如果上面都试了,
cat /var/log/cron
找到关于这个脚本的日志,仔细看下原因(一般都是自己写的不对)。
附上我更新dynv6的脚本:
#!/bin/bash
# Dynv6 API token
TOKEN="写上自己的tocken"
# Your domain name
DOMAIN="自己的域名"
# 指定日志地址,
LOG_FILE=~/etc/logs/update_dynv6_ipv6.log
# Get the current public IPv6 address
## IPV6=$(curl -s https://api64.ipify.org)
IPV6=$(ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '$3 == "::1" { next;} $3 ~ /^fe80::/ { next;} /inet6/ {print $3}' |head -n1)
# Update Dynv6
RESPONSE=$(curl -s "https://dynv6.com/api/update?hostname=$DOMAIN&ipv6=$IPV6&token=$TOKEN")
# Write log
{
echo "
"
echo "---------------------------------"
echo "Date: $(date)"
echo "IPv6 Address: $IPV6"
echo "Response: $RESPONSE"
echo "---------------------------------"
} >> "$LOG_FILE"