我写了一个 bash 脚本来备份 Moodle 安装。它工作正常,我已经测试了备份,但它有问题;当我做备份时,因为我sudo每次都必须输入密码,所以我必须亲自输入密码,而不是仅仅运行一个cron工作来自动完成。
现在我怀疑这与我不知道cron或使用 SSH 密钥有关;无论哪种方式,我都想自动化备份。
#!/bin/bash
# Turn on Maintance mode and log it...
logger "BEGIN Turning on maintance mode in moodle"
lynx -cmd_script=./backupScripts/turnOnMaintMode http://moodle.leeand00domain.local
logger "END Turning on maintance mode complete."
logger "BEGIN Creating Backup Directory"
export bkdir=$(date +"%Y-%m-%d")
mkdir $bkdir
cd $bkdir
logger "END Creating Backup Directory"
#Get a backup copy of the database
logger "BEGIN Backing up the Moodle Database"
mysqldump -u moodleuser --password=XXXXX -C -Q -e --create-options …Run Code Online (Sandbox Code Playgroud) 我经常使用 btrfs 的快照来备份整个系统,但是在不同的快照之间拥有相同的文件是多余的。通常,例如,我将@ 的快照拍摄为@_without_install_nvidia_driver,并安装了nvidia_driver。几天后,我更新了系统,导致大量文件更改。后来,几天后,发现nvidia_driver包不稳定,又恢复到@_without_install_nvidia_driver,但不得不再次更新系统,发现两个快照中存在相同的文件,因为系统现在已经在两个快照中更新。
这让我想知道:有没有办法在不同的快照之间合并相同的文件?
我有一个这样的文件夹:
./folder-a/index.html
./folder-b/index.html
./folder-c/subdir/index.html
./new-content/folder-a/index.html
./new-content/folder-b/index.html
./new-content/folder-c/subdir/index.html
Run Code Online (Sandbox Code Playgroud)
该new-content文件夹包含我更新的持续更新内容。当我想更新我的内容时,我将复制它们以覆盖现有的内容,如下所示:
\cp -rf new-content/* ./
但是,我如何设置将要被覆盖的文件的备份?
任何简单的方法来实现这一目标?
是否有一种简单的方法可以递归复制目录,其中解析到外部文件/目录的符号链接(复制目标文件),但保留内部符号链接(指向复制的树中的文件)?
例子:
touch outsidefile
mkdir src
ln -s ../outsidefile src/sym1
touch src/insidefile
ln -s insidefile src/sym2
cp [???] src dest # or other command
Run Code Online (Sandbox Code Playgroud)
想要的结果:
$ ls dest
insidefile
sym1
sym2 -> insidefile
Run Code Online (Sandbox Code Playgroud)
即sym1是一个常规文件,sym2保持是一个符号链接。
我正在为网络上的某些计算机设置自动备份作业。有一台服务器每天都会运行一个rsync命令来备份其他每台计算机。我希望rsync作业运行的用户能够读取每个人的主目录(包括敏感文件,如加密的秘密 SSH 密钥),但不能在系统上的任何地方写入(除了/tmp)。我还想防止普通用户读取彼此的主目录,尤其是敏感部分。
我的第一个想法是创建一个仅包含备份用户的组。然后我会让用户将chgrp他们的文件放到备份组中。不是成员本身,他们将无法读取彼此的文件,但备份用户可以读取他们想要备份的所有内容。
但是,用户不能chgrp加入他们不属于的组。我无法将它们添加到组中,因为这将使用户能够读取彼此的主目录。
我曾考虑NOPASSWD在sudoers文件中为备份用户提供一个条目,允许他仅以rsyncroot 身份运行所需的确切命令,但是如果我没有正确设置它,这似乎是灾难性的(如果有办法制作符号链接)到/etc/sudoers并获取rsync命令以将其用作目的地,例如)。
我一直在为我的虚拟机备份 Windows 安装程序映像,并验证数据是否正确传输,我一直在使用cksum. 出于好奇,我决定比较cksum运行与运行md5sum相同文件所需的时间。多次运行每个操作后的结果(以确保它与 I/O 缓存无关)md5sum始终花费大约一半的时间cksum。我有两个问题...
md5sum比 快这么多cksum?cksum了md5sum。我正在运行 Arch Linux。
注意:这不是关于哪个更好的问题。之前已经多次讨论过这一点,我知道md5sum不能用作加密哈希。我特别询问使用md5sum作为查找随机错误的手段。
我正在尝试在 Fedora Linux 上备份我的整个 VM。我正在使用以下命令
tar -cvpzf / test/backup.tar.gz --exclude=/test
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我想出了这个错误:
tar (child): /: Cannot open: Is a directory tar
(child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下我做错了什么吗?
我正在通过 git 备份/同步我的 $HOME 目录中的点文件。我当然不想同步所有内容,所以我通过 .gitignore 忽略所有内容并重新添加重要文件。
*
!.bash*
.*.swp
.bash_history
.bash_local
.bash_logout
!.profile
Run Code Online (Sandbox Code Playgroud)
在属于系统设置的 Ubuntu Gnome 环境中需要备份哪些文件,例如用户特定的首选项或主题设置?
我想备份我当前的 Debian 9 服务器操作系统分区,以便我可以安装 Debian 10 的干净版本。
但是,在安装 Debian 10 后,我想挂载我的旧操作系统映像,以便我可以根据需要浏览和恢复文件。
我以为我会使用 CloneZilla,但显然您不能直接安装它创建的图像?
我正在使用 24/7 全天候运行的树莓派,并创建了一个 crontask,定期将完整的 SD 卡备份到我的 NAS。我通过将它复制回 SD 卡来检查这样的备份,它运行良好。到现在为止还挺好。尽管如此,我还是很担心。由于这样的备份需要在我的网络上花费数小时,因此在我看来它不是某个特定时刻的快照,而是来自不同时刻的文件的混合,因为卡上的某些数据在复制时被修改。例如,如果安装了数据库或其他正在运行的软件会定期更改某些文件的内容。甚至更改系统文件。我可以想象这可能会在备份副本中造成不一致,根据我的看法,在最坏的情况下,这可能会创建一个无法用于恢复的损坏备份。