小编Stp*_*ane的帖子

tar "--exclude-from" 双星通配符

我在我的 Debian 8 系统上编写了一个备份脚本,它使用带有“--exclude-from”的 tar 命令来排除一些文件/目录。

这很好用,但今天我想排除一些共享相同路径模式的文件,/home/www-data/sites/<some_string>log.txt例如/home/www-data/sites/<one_or_two_directories>/vendor.

我试图附加/home/www-data/sites/*log.txt到文件中,但 tar 失败并在 stderr 上输出以下错误:

tar: /home/www-data/sites/*log.txt: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
Run Code Online (Sandbox Code Playgroud)

我错过尝试使用的东西时,*还是**

然后我在 Unix 中读到,程序通常不会自己解释通配符,这意味着它*不会**被 tar扩展。

据我所知,我在这里的最后手段是在tar调用之前使用 bash 扩展列表并将其附加到排除文件中(如果它还没有)。有更干净的方法吗?

编辑

这是脚本片段..

# ...
broot=$(dirname "${PWD}")
i="${PWD}/list.include"
x="${PWD}/list.exclude"
o="$broot/archive.tgz"
tar -zpcf $o -T $i -X $x
# ...
Run Code Online (Sandbox Code Playgroud)

这里的丹斯是排除文件..

/etc/php5/fpm
/etc/nginx
/etc/mysql …
Run Code Online (Sandbox Code Playgroud)

tar wildcards

3
推荐指数
1
解决办法
1万
查看次数

备份现有的 mdadm 阵列设置

我最近安装了 mdadm 并设置了一个涉及 2 个 500GIO 驱动器的 raid1 配置。

有没有办法在某处备份 RAID 配置,以便我可以使用单个 mdadm 命令重新加载它,以防我必须重新安装我的系统?

假设我的系统安装在某个 ssd 上,出于某种原因我必须重新安装它。问题是,我已经创建了 RAID1(涉及另外两个磁盘).. 是否可以快速恢复此 RAID1 磁盘而无需执行所有创建步骤(擦除磁盘、创建、同步等)。换句话说,是 RAID 丢失了还是 mdadm 可以恢复现有磁盘?

software-raid mdadm

2
推荐指数
1
解决办法
3898
查看次数

替代 Bash 双括号 glob 匹配

给定的

hasArgs=a:b:c:
x=b
if [[ ${hasArgs} = *$x:* ]] ; then …
Run Code Online (Sandbox Code Playgroud)

我希望我可以用较少的 Bash 特定替代品替换上面的双括号测试(意味着没有子shell/命令等)

参数扩展没有帮助,因为它不扩展变量。

if [ "${hasArgs}" != "${hasArgs#$x:}" ] ; then …
Run Code Online (Sandbox Code Playgroud)

是否有适合此用例的简单(一行)解决方案?

bash test

1
推荐指数
1
解决办法
709
查看次数

标签 统计

bash ×1

mdadm ×1

software-raid ×1

tar ×1

test ×1

wildcards ×1