我正在尝试从安装点到本地文件夹进行本地 rsync。我需要将所有者、组和权限设置为特定设置。这是我正在使用的:
rsync -rtlv --chown=process:sambausers --chmod=D770,F770 /mnt/owncloud_mnt/Engineering/ /Drive_D/docs/Engineering_test
Run Code Online (Sandbox Code Playgroud)
我最终在目录和文件上获得了 760 的权限,在所有权上获得了 root:root 权限(rsync 以 root 身份运行)。
我究竟做错了什么?
TIA
在 rsync 中,我试图排除与模式匹配的子目录。但是,我无法让它工作。我遵循了在这里和谷歌上找到的几个例子。但是,我没有得到正确的结果。这是我的命令的选项位:
-avh --exclude 'branch*' --stats --delete --link-dest=$LNK
Run Code Online (Sandbox Code Playgroud)
我的源目录结构是
/root
/branch1
/branch2
/branch3
/other
/stillAnother
/etc
Run Code Online (Sandbox Code Playgroud)
这是备份脚本的一部分。$LNK 是指向前一天 rsync 目标的链接。
我不想要 /root/branch1、/root/branch2、/root/branch3。或要同步的内容。但是,他们是。
以下是我已经尝试过的排除位:
--exclude=branch*
--exclude='branch*'
--exclude '/branch*'
--exclude /branch*
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助/建议。
编辑 - 解决“可能重复”标志
这个问题是关于一个已知的目录列表。我需要排除任何遵循某种模式的目录,即使这些目录尚不存在。即从我的示例中,/branch*
可以添加其他命名的目录。我需要使我的脚本面向未来,并避免在添加与模式匹配的目录时编辑脚本,因为这些目录可能是临时的。
我有一台运行在 VMware 虚拟机上的 Linux 服务器,带有 4 个虚拟硬盘。盒子运行了一个月后,我在vSphere客户端中添加了4个硬盘中的2个;我需要更多空间。几周前我做了这一步,然后在创建文件系统和设置挂载之前被拉到另一个项目中。现在,我不知道在 Linux 中哪个驱动器是哪个。我有 /dev/sda、/dev/sda1、/dev/sda2 和 /dev/sdb
如何确定哪些驱动器具有现有数据,哪些是新的?或者,我如何删除驱动器并重新开始(我知道如何在 vSphere 客户端中删除驱动器,但不知道如何在 Linux 中删除对它们的引用)。
以下是结果dmesg| grep sd
:
[ 1.361162] sd 2:0:0:0: [sda] 16777216 512-byte logical blocks: (8.58 GB/8.00 GiB)
[ 1.361205] sd 2:0:0:0: [sda] Write Protect is off
[ 1.361210] sd 2:0:0:0: [sda] Mode Sense: 61 00 00 00
[ 1.361253] sd 2:0:0:0: [sda] Cache data unavailable
[ 1.361257] sd 2:0:0:0: [sda] Assuming drive cache: write through
[ 1.363223] sd 2:0:0:0: Attached scsi generic sg1 …
Run Code Online (Sandbox Code Playgroud) 我正在使用 bash 脚本以交互方式编辑我的主机文件。我需要在我的主机文件中插入一行。该行需要插入特定注释后的第一个空行。我插入的内容在一个变量中。
这是我尝试过的(之前设置了 $NEWLINE):
sed -i '# Insert New DNS / Virtualbox/$NEWLINE/g' /etc/hosts
我没有收到错误,但没有写入该行。有什么建议吗?