计划任务,crontab

计划任务,crontab

我需要帮助。我必须接下来做:为 root 创建 cron 作业,并每 2 小时将数据包保存在测试用户的主目录中的 /var/log 中,并带有日期戳,并且该文件必须包含测试用户的用户和组?

答案1

您可以使用tcpdump工具来实现这一点。

脚本:

#!/usr/bin/env bash

echo "$(date +%x_%H:%M:%S:%N)" > /var/log/info.txt

echo " " >> /var/log/koko.txt

tcpdump -c 10 -w /tmp/info.pcap -i eno1 tcp && \

tcpdump -r /tmp/info.pcap >> /var/log/info.txt

使用以下命令使脚本可执行chmod +x sniffer.sh

然后将作业添加到 cron:

  1. 以 root 身份打开 cron 编辑器:

    sudo crontab -e
    
  2. 添加行

    0 */2 * * * /path/to/sniffer.sh
    

解释:

  • echo "$(date +%x_%H:%M:%S:%N)" > /var/log/koko.txt:将日期回显到输出文件中
  • echo " " >> /var/log/koko.txt:用线将日期与其他内容分开
  • tcpdump -c 10 -w /tmp/info.pcap -i eno1 tcp &&:从接口捕获 10 个数据包eno1(可以省略,在这种情况下它将从所有接口捕获)并写入文件,如果成功,则执行下一个命令,
  • tcpdump -r /tmp/info.pcap >> /var/log/koko.txt:从该文件读取并写入该info.txt文件。

答案2

创建 bash、python 或 perl 脚本,并将其添加到 crontab 中,使其每小时执行一次

0 */2 * * * python script.py 

或者

0 */2 * * * /etc/bashscript.sh .... 

相关内容