Crontab 作业将转换数据写入日志文件
Crontab job than writes transition data to log file
我有两台电脑。首先 "Router" 有两个 ip 地址(10.3.0.1
和 192.168.1.105
)正在寻找互联网和子网 10.3.0.0/28
并有 net.ipv4.ip_forward=1
。我还向 iptables 添加了规则以允许从 10.3.0.0/24
转发。第二个 "User" 有一个 ip 10.3.0.14
和 def 路由 10.3.0.1
我需要创建 cron 作业,它将每小时写入一个日志文件 /var/log/net-usage/10.3.0.14.log 过渡数据(上传和下载)的数量。我需要使用 rsyslog(结合 loger)、cron 和 iptables。日志格式必须像
12 月 31 日 08:23:06 上传:171K;下载:8799K
我尝试使用来自 iptables -vnL 的转换信息来解决它
我编写了简单的 bash 代码 script.sh 并使其可执行
#!/bin/bash
date=$(date '+ %h %d %H:%M:%S')
upload=$(iptables -vnL |sed -n 11p| awk '{print"UPLOAD" " " ";"}')
download=$(iptables -vnL | sed -n 12p | awk '{print "DOWNLOAD" " " }')
echo $date $upload $download >> /var/log/net-usage/10.3.0.14.log
我有两个问题。首先,当我 运行 来自终端 ./script.sh 的脚本时,我得到了我想要的
Ju20 15 08:05:12 上传 1446K;下载 25M
但是当试图将它添加到 cron 时。 crontab -e
0 * * * * /path_to_script/script.sh
我只有
7 月 20 日 05:00:01
我的 10.3.0.14.log 文件中没有 upload/download 统计信息。
第二期。我需要使用 rsyslog(如果需要,还有记录器)将文件 10.3.0.14.log 从路由器复制到用户机器。并把它放到/var/log/net-usage.log.
尝试在 crontab 中将 iptables
更改为 /sbin/iptables
(*。cron 的默认路径通常不包括 /sbin。
*) 或任何 type iptables
打印。
我有两台电脑。首先 "Router" 有两个 ip 地址(10.3.0.1
和 192.168.1.105
)正在寻找互联网和子网 10.3.0.0/28
并有 net.ipv4.ip_forward=1
。我还向 iptables 添加了规则以允许从 10.3.0.0/24
转发。第二个 "User" 有一个 ip 10.3.0.14
和 def 路由 10.3.0.1
我尝试使用来自 iptables -vnL 的转换信息来解决它
我编写了简单的 bash 代码 script.sh 并使其可执行
#!/bin/bash
date=$(date '+ %h %d %H:%M:%S')
upload=$(iptables -vnL |sed -n 11p| awk '{print"UPLOAD" " " ";"}')
download=$(iptables -vnL | sed -n 12p | awk '{print "DOWNLOAD" " " }')
echo $date $upload $download >> /var/log/net-usage/10.3.0.14.log
我有两个问题。首先,当我 运行 来自终端 ./script.sh 的脚本时,我得到了我想要的
Ju20 15 08:05:12 上传 1446K;下载 25M
但是当试图将它添加到 cron 时。 crontab -e
0 * * * * /path_to_script/script.sh
我只有
7 月 20 日 05:00:01
我的 10.3.0.14.log 文件中没有 upload/download 统计信息。
第二期。我需要使用 rsyslog(如果需要,还有记录器)将文件 10.3.0.14.log 从路由器复制到用户机器。并把它放到/var/log/net-usage.log.
尝试在 crontab 中将 iptables
更改为 /sbin/iptables
(*。cron 的默认路径通常不包括 /sbin。
*) 或任何 type iptables
打印。