我正在使用 CFEngine 部署 Apache 站点。因此,我设置了一个存储库,并且我的代理正在从中复制文件。
问题是当我使用 vim 编辑文件时,它会创建交换文件。这些文件会被复制到服务器,这很糟糕,因为每次我启动编辑器时,所有这些机器都会下载交换文件。
大问题这会触发 apache 的重新启动。
TLDR:我如何告诉 CFEngine 忽略匹配的文件\..*\.swp
?
以下是我现在所拥有的:
files:
"/etc/apache2/sites-available/"
handle => "apache-sites-available",
depends_on => { "apacheinstall" },
create => "true",
copy_from => secure_cp("/srv/repos/apache2/conf/sites-available/","$(sys.policy_hub)"),
depth_search => recurse("inf"),
classes => satisfied("apachemustrestart");
"/etc/apache2/sites-enabled/"
handle => "apache-sites-enabled",
depends_on => { "apacheinstall", "apache-sites-available" },
create => "true",
copy_from => secure_cp("/srv/repos/apache2/conf/sites-enabled/","$(sys.policy_hub)"),
depth_search => recurse("inf"),
classes => satisfied("apachemustrestart");
# promise_repaired => { "apachemustrestart" };
services:
"apache2"
handle => "apacheenable",
depends_on => { "apache-sites-enabled" },
service_policy => "start";
apachemustrestart::
"apache2"
service_policy => "restart";
这是satisfied
课程
body classes satisfied(x)
{
promise_repaired => { "$(x)" };
# persist_time => "0";
}
编辑:我的帖子不够精确。
答案1
我不确定 CFEngine 配置 - 我还没有用过它。您可以通过告诉 vim 在编辑期间不要创建其他文件来解决您的问题。
设置不备份
设置不写备份
设置noswap文件
答案2
有点晚了,但如果没有人回答这个问题,我会:
bundle agent filecache {
files:
myclass::
"/etc/apache2/sites-available/"
copy_from => mycopy("/your_path","$(sys.policy_hub)"),
depth_search => recursive_exc_swp;
}
body copy_from mycopy(from,server) {
source => "$(from)";
servers => { "$(server)" };
purge => "true";
stealth => "true";
preserve => "true";
}
body depth_search recursive_exc_swp {
depth => "inf";
exclude_dirs => { "\.swp" };
}