全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

IP归属甄别会员请立即修改密码
查看: 432|回复: 5
打印 上一主题 下一主题

[疑问] sh脚本直接执行返回结果正常,一使用crontab就不正常

[复制链接]
跳转到指定楼层
1#
发表于 2022-12-1 21:41:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 skywing 于 2022-12-1 21:44 编辑
  1. #!/usr/bin/env bash
  2. get_ip() {
  3.         new_ip=`dig domain.com +noall +answer | awk '{print $5}'`
  4.         old_ip=`iptables -L | grep dpt:443 | grep ACCEPT | awk '{print $4}'`
  5. }

  6. check_ip () {
  7.         get_ip
  8.         echo "the new ip is $new_ip"
  9.         echo "the old ip is $old_ip"
  10.         if [[ "${new_ip}" != "${old_ip}" ]]; then
  11.         iptables -I INPUT -s $new_ip -p tcp --dport 443 -j ACCEPT
  12.         iptables -D INPUT -s $old_ip -p tcp --dport 443 -j ACCEPT
  13.         echo "ip changed, update the ip."
  14. else
  15.         echo "ip not change."
  16.         fi
  17. }
  18. check_ip
复制代码


直接执行这个脚本,输出
  1. the new ip is xxx
  2. the old ip is xxx
  3. ip not change.
复制代码

一放到crontal里定时执行,输出
  1. the new ip is xxx
  2. the old ip is
  3. ip changed, update the ip.
复制代码

old_ip 直接返回空值
这是怎么回事呢?
2#
发表于 2022-12-1 21:44:18 | 只看该作者
ipt在sbin里
lifetyper 该用户已被删除
3#
发表于 2022-12-1 21:45:35 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
4#
 楼主| 发表于 2022-12-1 21:54:58 | 只看该作者

第一行写成 #/usr/sbin bash这个脚本就无法通过文件路径直接执行,提示如下错误
-bash: ./ip.sh: /usr/sbin: bad interpreter: Permission denied
必须前面使用 bash才能正常执行

为什么会报这个错误呢?

5#
发表于 2022-12-1 22:31:51 | 只看该作者
skywing 发表于 2022-12-1 21:54
第一行写成 #/usr/sbin bash这个脚本就无法通过文件路径直接执行,提示如下错误
-bash: ./ip.sh: /usr/sb ...

看乐了

人家说的是 iptables 在 sbin
6#
发表于 2022-12-1 22:37:10 | 只看该作者
/usr/sbin/iptables ...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-1-13 01:13 , Processed in 0.059491 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表