【问题标题】:Shell Script to make Centos Backup用于制作 Centos 备份的 Shell 脚本
【发布时间】:2015-10-03 15:29:57
【问题描述】:

我在一个教程中读到,我可以使用以下命令对我的 CENTOS 系统进行完整备份:

tar cvpzf /backups/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backups --exclude=/dev --exclude=/sys --exclude=/boot/grub --exclude=/etc/fstab --exclude=/etc/sysconfig/network-scripts/ --exclude=/etc/udev/rules.d/70-persistent-net.rules /

这在命令行中对我很有用。我已经测试过了,恢复很顺利。我希望能够在每晚自动发生这种情况,但是当我尝试在 bash 脚本中执行此操作时,它会给我一些错误消息。我知道如何做一个 cron 作业来执行一个 shell 脚本,但是这段代码不能用来做备份:

#!/bin/bash
#Generic Server Backup With tar
SERVER=`uname -n`
echo "Starting backup for $SERVER..."
tar cvpzf /home/backups/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backups --exclude=/dev --exclude=/sys --exclude=/boot/grub --exclude=/etc/fstab --exclude=/etc/sysconfig/network-scripts/ --exclude=/etc/udev/rules.d/70-persistent-net.rules /
echo "Done."

有谁知道我做错了什么或如何解决它?

错误信息:

  sh bu.sh
...rting backup for juice.myserver.com
tar: Removing leading `/' from member names
tar: /\r: Cannot stat: No such file or directory
tar: Error exit delayed from previous errors
Done.

【问题讨论】:

  • 显示确切的错误是个好主意,以便我们提供帮助。
  • 已编辑以包含确切的错误消息
  • cron 需要考虑的一个问题是脚本的运行用户。 cron 用户是否有足够的权限?您是否可能在 sudo 下对其进行测试,然后将其作为您自己进行 cron 操作?

标签: linux bash shell centos5


【解决方案1】:

这似乎是tar命令末尾的CR(回车)相关的问题。

在排除项之后有一个单独的斜杠 (/),这显然是要备份的路径。问题是 tar 认为它是 /\r 并且它显然不存在。

建议尝试使用dos2unix 之类的实用程序或使用tr -d '\r' < bu.sh > newbu.sh 之类的命令来删除它。

之后,它应该可以正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-06
    • 1970-01-01
    • 2021-06-11
    • 2022-08-20
    相关资源
    最近更新 更多