Linux Mint 17.1 tar 备份错误

Linux Mint 17.1 tar 备份错误

我已经在 ubuntu 12.04 上成功使用了以下脚本。现在我全新安装了 Linux mint 17.1,但 tar 备份脚本无法再工作。它给出了一个错误:

这是脚本,尝试在脚本外部运行并且 tar 有效:

#!/bin/bash

TODAY=$(date +%F)
HOST=$(hostname)

echo "------------- backing up $HOST ------------------"

sudo su - user -c "tar cvpzf /FILES/Media/Programs/Mint/Backup/$HOST$TODAY.tgz --exclude=/proc --exclude=/lost+found --exclude=/FILES/Media/Programs/Mint/Backup/$HOST$TODAY.tgz --exclude=/mnt --exclude=/FILES --exclude=/sys --exclude=/BACKUP --exclude=/MEDIA /"

echo "------------- Finished ------------------"

出现此错误:

: not found/backup.sh: 2: /etc/init.d/backup.sh: 
: not found/backup.sh: 5: /etc/init.d/backup.sh: 
 ------------------ng up mint-server
: not found/backup.sh: 7: /etc/init.d/backup.sh: 
tar: Removing leading `/' from member names
tar: /\r: Cannot stat: No such file or directory
tar: Exiting with failure status due to previous errors
: not found/backup.sh: 9: /etc/init.d/backup.sh: 
------------- Finished ------------------

为什么该脚本在 Mint 17.1 中不起作用?

答案1

早上好!

我不确定为什么您的脚本在 Mint 17.1 上失败,但在 Ubuntu 12.04 上却可以运行 - 但我相信 Ubuntu 12.04upstart和 Mint 17.1 都使用systemd这个脚本,所以它会基于此。从错误来看,脚本似乎是由 /bin/sh 运行的,但我认为这与 /bin/dash 相关联,它应该能够解析您的脚本...

你的脚本是 吗/etc/init.d/backup.sh?你的脚本实际上不是一个符合 LSB 的正确初始化脚本;初始化脚本必须使用标头块声明其依赖项,并响应开始停止重新加载等命令 - Debian Wiki 中有很好的描述LSBInitScripts。如果您有/etc/rc.local脚本,请从那里运行您的脚本。这是放置用户脚本的正确位置,这些脚本应在 init 完成运行级别工作后运行。

我相信 Mint 17 默认使用 systemd,因此如果您没有,rc.local则需要创建它并通过创建/etc/systemd/system/rc-local.service包含以下内容的 systemd 服务:

[Unit]
Description=/etc/rc.local Compatibility

[Service]
Type=oneshot
ExecStart=/etc/rc.local
TimeoutSec=0
StandardInput=tty
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

然后运行

systemctl enable rc-local.service

您使用的任何其他自定义启动脚本都应从此处运行。当然,您可以使用上述内容作为框架,创建单独的 systemd 服务来运行备份,并进行相应修改。

呼呼!

相关内容