我需要每天备份此服务器上的数据和配置文件。我需要保持:
所有这些都是通过每天从 cron 运行的 shell 脚本完成的。
这是备份文件在运行 10 年后的样子:
blog-20050103.tar.bz2
blog-20060102.tar.bz2
blog-20070101.tar.bz2
blog-20080107.tar.bz2
blog-20090105.tar.bz2
blog-20100104.tar.bz2
blog-20110103.tar.bz2
blog-20120102.tar.bz2
blog-20130107.tar.bz2
blog-20130902.tar.bz2
blog-20131007.tar.bz2
blog-20131104.tar.bz2
blog-20131202.tar.bz2
blog-20140106.tar.bz2
blog-20140203.tar.bz2
blog-20140303.tar.bz2
blog-20140407.tar.bz2
blog-20140505.tar.bz2
blog-20140602.tar.bz2
blog-20140707.tar.bz2
blog-20140728.tar.bz2
blog-20140804.tar.bz2
blog-20140811.tar.bz2
blog-20140816.tar.bz2
blog-20140817.tar.bz2
blog-20140818.tar.bz2
blog-20140819.tar.bz2
blog-20140820.tar.bz2
blog-20140821.tar.bz2
blog-20140822.tar.bz2
Run Code Online (Sandbox Code Playgroud) 我如何能够将子目录压缩到单独的档案中?
例子:
directory
subdir1
subdir2
Run Code Online (Sandbox Code Playgroud)
应该创建 subdir1(.tar).gz 和 subdir2(.tar).gz
我有一个文件,我正在尝试使用 tail -f 读取该文件。我想知道是否有办法让终端输出实际的换行符而不是 \n 字符。
如果我想显示分配给 eth1 的 IP 地址,我该如何在 Bash 中执行此操作?
我们在我的工作场所有单独的环境用于开发、测试、集成和登台。
在这些环境中,我们重载了 DNS 中的主机名——例如,在开发环境中,主 Web 机器被称为web1.dev.example.com,而在测试环境中,主 Web 机器是web1.test.example.com。
为了区分不同环境中的机器,我想自定义 bash 提示以显示 FQDN 而不仅仅是主机名。好,好;我应该可以\h用\Hin替换$PS1,对吗?唔。它们显示了完全相同的东西。
me@web1:~$ hostname
web1
me@web1:~$ hostname -f
web1.dev.example.com
me@web1:~$ export PS1="\[\u@\h: \w\]\$ "
me@web1: ~$ export PS1="\[\u@\H: \w\]\$ "
me@web1: ~$
Run Code Online (Sandbox Code Playgroud)
在 中/etc/hostname,我只有主机名 ( web1)。hostname并且hostname -f都返回正确的结果(分别为“web1”和“web1.test.example.com”),并且我在/etc/hosts.
是什么赋予了?
这些是 Ubuntu 10.04 主机,如果这有区别的话。
我有五个 CentOS 6 linux 系统在工作,并且遇到了一个相当奇怪的问题,似乎只发生在我拥有的所有 linux 系统中的用户 ID ......这是我从last命令中排除的条目的问题示例.. .
mpenning pts/19 Fri Nov 16 10:32 - 10:35 (00:03)
mpenning pts/17 Fri Nov 16 10:21 - 10:42 (00:21)
bill pts/15 sol-bill.local Fri Nov 16 10:19 - 10:36 (00:16)
mpenning pts/1 192.0.2.91 Fri Nov 16 10:17 - 10:49 (12+00:31)
kkim14 pts/14 192.0.2.225 Thu Nov 15 18:02 - 15:17 (4+21:15)
gduarte pts/10 192.0.2.135 Thu Nov 15 12:33 - 08:10 (11+19:36)
gduarte pts/9 192.0.2.135 Thu Nov 15 12:31 - 08:10 …Run Code Online (Sandbox Code Playgroud) 我想更改默认的 shell env
并chsh -s /bin/zsh以root用户身份运行,
但是出现了一条错误消息:chsh: PAM authentication failed。
我发现这个线程http://ubuntuforums.org/showthread.php?t=1702833
但答案并没有解决我的问题
任何帮助,将不胜感激
这是/etc/pam.d/chsh的内容
#
# The PAM configuration file for the Shadow `chsh' service
#
# This will not allow a user to change their shell unless
# their current one is listed in /etc/shells. This keeps
# accounts with special shells from changing them.
auth required pam_shells.so
# This allows root to change user shell without being
# prompted for a password
auth …Run Code Online (Sandbox Code Playgroud) 用例的简短介绍:
我正在使用docker容器来运行我的go测试go test ./...。这可以使用 轻松实现docker exec <container> /bin/sh -c "go test ./..."。不幸的是go test ./...运行在所有子目录中,我想排除一个(供应商目录)。
建议的解决方案是使用以下命令:go test $(go list ./... | grep -v '<excluded>',不知何故这让我得到以下结果:
docker run golang:1.6.2-alpine /bin/sh -c "go test " (我已经在 run 和 exec 上对此进行了测试,但它们可能使用相同的核心)。
当我使用 ssh 进入容器docker exec -it <container_id> /bin/sh并运行完全相同的命令时,它就像一个魅力。
似乎通过 docker exec/run 执行 shell 命令不支持任何嵌套的命令$()?
是否可以将命令输出通过管道传输到 bzip2 以压缩到输出文件?
类似的东西:
cat somefile.txt | bzip2 --output somefile.txt.bz2
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下命令将所有较新的 jpg 从一个文件夹复制到另一个文件夹
cp -u --force /home/oldfolder/*.jpg /home/newfolder/
Run Code Online (Sandbox Code Playgroud)
我得到以下提示:
cp: overwrite `/home/newfolder/4095-181.jpg'?
Run Code Online (Sandbox Code Playgroud)
我知道的“-u”工作正常,因为它只提示我使用较新的文件,但我不想得到提示,我只是想让它覆盖它们。我试过 --force 和 -f
有什么建议?
提前致谢