文件/var/cpanel/mainip仅包含我的服务器的主IP。文件/etc/csf/csf.block list包含防火墙阻止列表的列表,文件的一部分包含示例IP地址为1.2.3.4的行
通常,在新服务器上安装CSF防火墙软件时,我会手动将示例IP地址替换为服务器的主IP地址。这是从某些提供商成功获取防火墙阻止列表所必需的。为了简化设置过程,我想使用一个命令将示例IP地址1.2.3.4替换为我的主服务器IP,这样我就不必手动执行此操作。
我已经尝试了sed命令,我想我已经接近正确的命令了,但还不完全正确。你能帮帮忙吗?
sed -i '/1.2.3.4/ { r /etc/csf/csf.blocklists }' /var/cpanel/mainip此代码不正确,因为它输出一个错误:
sed:-e表达式#1,字符0:不匹配的`{‘
成功后,应将1.2.3.4替换为实际的服务器IP地址。
发布于 2019-08-23 22:51:37
sed -i "s/1\.2\.3\.4/$(</var/cpanel/mainip)/" /etc/csf/csf.blocklists应该能胜任这项工作。
发布于 2019-08-24 00:53:06
您只需指定
sed -i '/1.2.3.4/r /etc/csf/csf.blocklists' /var/cpanel/mainip
事实上,甚至连空格都是可选的;下面的也可以
sed -i '/1.2.3.4/r/etc/csf/csf.blocklists' /var/cpanel/mainip
您只需指定模式/1.2.3.4/,然后再指定一个命令
该命令可以是用于读取r、用于写入的w、用于删除的d等等
删除条目的d示例如下
sed -i '/1.2.3.4/d' /var/cpanel/mainip
https://stackoverflow.com/questions/57628549
复制相似问题