我需要在IP地址发生变化时更新文本文件,然后再从shell运行一些命令.
创建变量LASTKNOWN ="212.171.135.53"这是我们编写此脚本时的IP地址.
获取当前的IP地址.它会每天改变.
为新IP创建变量CURRENT.
比较(作为字符串)CURRENT到LASTKNOWN
如果它们相同,则退出()
如果他们不同,
A.将包含LASTKNOWN IP地址的旧配置文件(/etc/ipf.conf)"复制"到/ tmp B.用/tmp/ipf.conf文件中的CURRENT替换LASTKNOWN.
C.使用子进程"mv /tmp/ipf.conf /etc/ipf.conf"D
.使用子进程执行,"ipf -Fa -f /etc/ipf.conf"E
.使用子进程执行,"ipnat -CF -f /etc/ipnat.conf"
出口()
我知道如何执行第1步到第6步.我堕落在"文件编辑"部分,A - > C.我无法分辨使用什么模块或是否应该编辑文件.有很多方法可以做到这一点,我无法决定最好的方法.我想我想要最保守的一个.
我知道如何使用子进程,所以你不需要对它进行评论.
我不想替换整条线; 只是一个特定的点缀四边形
谢谢!
确保文件存在和文件是否有意义?现在暗示它是一个文件还是该file { '/etc/sendmail':行将其定义为文件?
class sendmail {
file { '/etc/sendmail':
ensure => directory,
mode => 755
}
file { '/etc/sendmail/sendmail.cf':
ensure => present,
ensure => file,
backup => false,
source => 'puppet:///mymodules/sendmail/sendmail.cf',
}
file { '/etc/sendmail/submit.cf':
ensure => present,
ensure => file,
backup => false,
source => 'puppet:///mymodules/sendmail/submit.cf',
}
service {'sendmail':
ensure => running
}
}
Run Code Online (Sandbox Code Playgroud) 我有几十个设备需要使用 API 脚本登录。一组设备的密码以 $ 结尾。我已经尝试了很多东西,但我似乎无法摆脱那个 $ 字符。这是我看到的错误。
critical/config: Error: Validation failed for object 'gelt-uk4-gp!HTTP/80: Status Check ' of type 'Service'; Attribute 'vars' -> 'gspass': Closing $ not found in macro format string 'n0t-real#$'.
Location: in /etc/icinga2/zones.d/global-templates/global-services.conf: 55:5-55:31
/etc/icinga2/zones.d/global-templates/global-services.conf(53): if ( host.vars.company == "gelt-emea" ) {
/etc/icinga2/zones.d/global-templates/global-services.conf(54): vars.gsuser = "admin"
/etc/icinga2/zones.d/global-templates/global-services.conf(55): vars.gspass = "n0t-real#$"
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud) 我对perlbrew几乎不熟悉.我想我需要使用--sitecustomize $ filename但我无法在任何地方找到此文件的示例.我不知道该放入文件中的内容.任何人都有我可以看到的样品?