我想编写一个脚本,在一定时间内修改 /etc/hosts。动机是生产力。
我的方法是定义一个包含所需规则的文本块,然后将其放入 /etc/hosts。时间结束后,我会搜索完全相同的块并将其删除。
现在我只是好奇是否有更好的方法可以做到这一点。也许是与那些 /etc/resolv.conf.tail 文件类似的构造?
答案1
您是否试图阻止或限制员工在工作时间访问某些网站?代理/Web 过滤器更有意义?
如果不是这种情况,您可以利用任何标准配置管理实用程序(木偶(例如)替换/etc/hosts
文件或就地修改文件。您还可以使用echo
或sed
修改文本块并通过计划cron
。请记住,hosts 文件是从上到下读取的...
答案2
读完您的初始帖子后,我仍然不能 100% 确定您想要做什么。如果您想修改 /etc/hosts 文件,您可以编写一个基本脚本来 echo 或 cat >> 文件,然后根据您想要的时间将其放入 cron 中。因此,如果您想在上午 7:00 修改它,那么让 cron 作业在上午 7:00 运行,如果您想在下午 6:00 修改它,那么让另一个 cron 作业在下午 6:00 删除您之前的条目。在脚本方面,有几种方法可以做到这一点。最简单的方法可能是在某个目录中创建几个名为 hosts1、host2、hosts3 等的文件。然后在您的脚本中,您只需用您修改过的任何其他主机文件替换 /etc/hosts 文件即可。如果您不想这样做,就像我说的,您可以将各行 echo 或 cat 到文件中,然后使用 sed 稍后删除它们。