有时我有两棵树,它们曾经具有相同的内容,但已经不同步了(因为我移动了磁盘或其他什么)。一个很好的例子是我从 Fedora 镜像上游包的树。
我想通过将所有文件从 tree1 移动到 tree2 来再次合并这两棵树。
通常我这样做:
rsync -arv tree1/* tree2
Run Code Online (Sandbox Code Playgroud)
然后删除tree1。
但是,这需要大量的时间和磁盘空间,并且能够更容易地做到:
mv -r tree1/* tree2
Run Code Online (Sandbox Code Playgroud)
换句话说,递归移动。它会更快,因为首先它甚至不会复制,只需移动 inode,其次我不需要最后删除。
这存在吗?
作为测试用例,请考虑以下命令序列:
$ mkdir -p a/b
$ touch a/b/c1
$ rsync -arv a/ a2
sending incremental file list
created directory
./
b/
b/c1
b/c2
sent 173 bytes received 57 bytes 460.00 bytes/sec
total size is 0 speedup is 0.00
$ touch a/b/c2
Run Code Online (Sandbox Code Playgroud)
现在什么命令可以将 a/b/c2 移动到 a2/b/c2 然后删除 a 子树(因为其中的所有内容都已经在目标树中)?
这里的第一个问题,我通常在 StackOverflow 上。
我需要删除目录的所有内容,但不是目录本身,因为我无权删除该实际目录。这看起来很简单,但我无法找到此命令。提前致谢。
这里有人能够启动/停止/重新加载/...使用通配符或 systemctl 上的类似方法指定的单位列表吗?
我尝试做类似的事情:systemctl restart openstack-nova-*.services或systemctl restart openstack-nova-?.services
但这是一个死胡同,我在 systemctl 的手册上没有找到任何有用的东西。
我可以使用 for 循环,但在此之前我必须systemctl -t service --failed为列出的单位制作一个然后 grep ......有点无聊不是吗?
所以,如果有人知道是否可以做这样的事情,我会很高兴听到的。
如果不是,我想我会在 systemctl 开发人员列表上提出这个想法,或者如果我有时间的话可能会打补丁 ^^
所以我在 Dreamhost 上注册了一个域,它显然不进行递归查找,并且在 Heroku 上有一个应用程序。Heroku 应用程序始终配置为使用 CNAME 记录到proxy.heroku.com.
所以:
Authoritative DNS: ns1.dreamhost.com (for foo.com)
CNAME record: app.foo.com -> proxy.heroku.com
Resolves to: Set of A records for EC2 IPs
Run Code Online (Sandbox Code Playgroud)
一些试图从 Windows Server 2003 DNS 服务器后面连接到该应用程序的人告诉我,它以不同的方式处理 SERVFAIL 并且无法解析 DNS。我试图了解这是否真的是我或他们的配置问题,特别是根据标题:
域的权威 DNS 服务器是否必须递归以允许 CNAME 记录指向其他域?
一个群体是否有可能直接或间接地包括自己?
换句话说,是否可以创建以下结构:
Group-A
?? Group-B
?? Group-C
?? Group-A(递归循环)
AD 是否检测并防止此类情况,或者是否允许它们并处理递归循环。
如果我有 AD 森林的管理权限,而且我不害怕解开现实的结构,我会自己测试一下。可悲的是,谷歌 - 在回答这个问题时几乎没有帮助......尽管我可能没有在搜索输入框中做出正确的咒语。
这可能是 Windows DNS 特定问题或一般 DNS 最佳实践问题 - 我不确定!
我们将我们的第 3 方 DNS 条款从提供商 A 迁移到提供商 B。
我注意到我们的内部递归 Windows DNS 服务器仍然为指向提供商 A 的服务器的域缓存了 NS 记录,即使几天前我与我们的注册商更改了名称服务器,即使选择缓存记录的属性显示 TTL 为1天。
在此缓存中的 NS 记录过期 24 小时后,DNS 服务器是否会返回 TLD 服务器以更新权限,还是会优先访问 dns1.providera.com,因为这是它缓存的内容?
在这种情况下,我安排让提供商 A 的服务器运行一周以允许更改传播,因此 dns1.providera.com 仍处于活动状态,并且仍会提供表示 dns1.providera.com 的 NS 和 SOA 记录。负责这个域。鉴于这一事实,Windows DNS 服务器是否会返回 TLD 并获取权限更改,还是只是假设一切正常并在其缓存的 NS 记录上更新时间戳?
我想知道确保缓存选择它的最佳方法是什么。我是不是该:-
(1) 将提供者 A 的服务器留在原地并处于活动状态并等待缓存赶上......基本上我们现在正在做的事情似乎有问题 - 可能专门针对 Windows 服务器,或者可能更广泛。(2) 将提供者 A 的服务器留在原地,但更改它们提供的 NS 和/或 SOA 信息以告诉缓存新服务器负责。(3) 在 2*TTL 之后移除提供者 A 的服务器以强制更新剩余的缓存。
(2) 的问题在于,在提供者 A 的系统上,我似乎无法将 NS 或 SOA …
我在 Internet DMZ 中使用 bind 9.9.2 作为 DNSSEC 验证递归解析器。我想将我的内部 DNS 服务器作为存根区域(理想情况下)或从属区域以外的任何区域(以避免非常大的区域传输)。我们使用可路由的 ip 空间进行内部寻址。抱歉,如果我在示例中使用的是您拥有的 IP 空间,但 167.xxx 是我发现的第一个适合我的问题的区域。
例如
dnssec-enable yes;
dnssec-validation yes;
dnssec-accept-expired no;
zone "16.172.in-addr.arpa" {
type stub;
masters { 167.255.1.53; }
}
zone "myzone.com" in {
type stub;
masters { 167.255.1.53; }
}
Run Code Online (Sandbox Code Playgroud)
当查询到达 DNS 服务器时,它们尝试进行验证,但失败了,因为 167.in-addr.arpa 有一个 RRSIG 记录,但子区域没有(也不应该!)。本示例中使用了 Google dns,但实际上它是我的递归解析器。
@8.8.8.8 -x 167.255.1.53 +dnssec
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 17488
;; flags: qr …Run Code Online (Sandbox Code Playgroud) 我使用以下命令来执行权限修复:
sudo find . -type f -exec chmod 470 {} \;
Run Code Online (Sandbox Code Playgroud)
有数千个文件需要更新权限。它还会在运行期间增加 CPU 使用率。
使用纯 chmod 递归更新进一步修改文件权限的后续调用不会占用 CPU 资源
sudo chmod 770 -R /path/to/directory
Run Code Online (Sandbox Code Playgroud)
我在寻找什么:
是否有一个简洁的 linux 命令(适用于 OSX)来更改文件夹及其所有内容的权限,但不更改当前目录中的文件?例如:
/parent/folder1 <-更改权限
/parent/folder2 <-更改权限
/parent/folder3 <-更改权限
/parent/folder3/file1 <-更改权限
/parent/folder3/file2 <-更改权限
/parent/file1 <-不要更改权限
/parent/file2 <-不要更改权限
我熟悉如何用 PHP 解决这个问题,但是我想更多地练习 bash 脚本。
任务是删除文件夹中的所有文件,该文件夹本身包含子文件夹(带有文件)。这些文件通常是 .pdf(或某些变体:PDF、Pdf、pDf 等),但有时可能会有其他文件类型,包括我目前未知的扩展名。
这是我到目前为止所拥有的。它与文件名相呼应,但如果我发出 rm $i,系统将返回在每个文件上找不到的文件。
for i in `ls -bRC1 /foo/temp_folders/* ` ; do echo $i ; rm $i ; done
Run Code Online (Sandbox Code Playgroud)
发出 rm $i 时如何强制使用绝对路径?
新手来了 有人可以用简单的语言解释“递归地”做某事的意思吗?我查看了 HOURS 的搜索结果,但没有找到任何简单地用简单的英语说明其含义的内容。例如,如果我在 chown 中使用 -r 选项,那有什么作用?
谢谢!