Bash脚本命令在cron中不起作用

Tar*_*wah 5 linux bash cron

我有以下bash脚本来读取日志并检查暴力,然后使用iptables阻止违反IP.

#!/bin/bash
#blah blah run some commands to get the IP
iptables -A INPUT -s $p -j REJECT --reject-with icmp-host-prohibited
echo "BANNED $p FOR $COUNT ATTEMPTS" |wall
Run Code Online (Sandbox Code Playgroud)

我做了chmod 755.当我从终端运行命令时它运行正常.但是当我crontab -e以root用户身份设置cronjob时,它会获取IP并将"BANNED ..."消息回显到墙上,但没有任何内容添加到iptables列表中.

PS.我试过了两次#!/bin/bash,#!/bin/sh但没有运气.

小智 13

尝试提供iptables的完整路径,例如

$ which iptables
/sbin/iptables
Run Code Online (Sandbox Code Playgroud)

而不是修改你的脚本:

#!/bin/bash
#blah blah run some commands to get the IP
/sbin/iptables -A INPUT -s $p -j REJECT --reject-with icmp-host-prohibited
echo "BANNED $p FOR $COUNT ATTEMPTS" |wall
Run Code Online (Sandbox Code Playgroud)