crontab 定时任务环境变量问题
crontab 执行脚本时出现了已经成功执行,实际执行结果有问题的情况;
这个问题关键在于 环境变量 作祟;
crontab 在执行命令时,默认的环境变量不完整。
解决办法:
# 查看当前的环境变量
echo $PATH
# 编辑 crontab
crontab -e
# 在第一行增加你的环境变量 PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
crontab 执行脚本时出现了已经成功执行,实际执行结果有问题的情况;
这个问题关键在于 环境变量 作祟;
crontab 在执行命令时,默认的环境变量不完整。
解决办法:
# 查看当前的环境变量
echo $PATH
# 编辑 crontab
crontab -e
# 在第一行增加你的环境变量 PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
安装 resolvconf
apt install resolvconf
vi /etc/resolvconf/resolv.conf.d/head
在文件中增加nameserver 8.8.8.8
nameserver 8.8.4.4
重启网络服务,使新 DNS 配置生效
systemctl restart networking
查看 dns 服务器
cat /etc/resolv.conf
vi /etc/default/ufw
将 DEFAULT_FORWARD_POLICY="DROP" 的 DROP 改为 ACCEPT。
vi /etc/ufw/sysctl.conf
添加 net/ipv4/ip_forward=1 ,注意不要重复添加。
将以下内容添加到过滤器规则(*filter)之前
( 示例:将本机 33.11.11.11:6677 转发到 88.66.66.66:8899 端口)
不适用于专有网络内网vps,例如阿里云;
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 3344 -j DNAT --to-destination 88.66.66.66:8899
-A PREROUTING -p udp --dport 3344 -j DNAT --to-destination 88.66.66.66:8899
-A POSTROUTING -p tcp -d 88.66.66.66 --dport 8899 -j SNAT --to-source 33.11.11.11
-A POSTROUTING -p udp -d 88.66.66.66 --dport 8899 -j SNAT --to-source 33.11.11.11
COMMIT
最后重启 reboot ;
查看指定规则表状态:
iptables -t nat -vnL POSTROUTING
iptables -t nat -vnL PREROUTING
其他命令:
#查看 nat 表中所有链的规则
iptables -t filter -L
#查看 nat 表中所有链的规则及地址、端口信息
iptables -t filter -nL