linux - tar 备份错误

标签 linux backup tar linux-mint

我关注了这个问题: How to backup filesystem with tar using a bash script?

但是当我运行脚本时它给出了以下错误:

: not found/backup.sh: 2: /etc/init.d/backup.sh: 
: not found/backup.sh: 5: /etc/init.d/backup.sh: 
: not found/backup.sh: 7: /etc/init.d/backup.sh: 
: not found/backup.sh: 10: /etc/init.d/backup.sh: 
: not found/backup.sh: 12: /etc/init.d/backup.sh: 
/etc/init.d/backup.sh: 13: /etc/init.d/backup.sh: Syntax error: "(" unexpected

这是我的脚本:

#!/bin/bash

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

mybackupname="backup-fullsys-$(date +%Y-%m-%d).tar.gz"

# Record start time by epoch second
start=$(date '+%s')

# List of excludes in a bash array, for easier reading.

excludes=(--exclude=/FILES/Media/Programs/Mint/Backup/$mybackupname)
excludes+=(--exclude=/proc)
excludes+=(--exclude=/lost+found)
excludes+=(--exclude=/sys)
excludes+=(--exclude=/mnt)
excludes+=(--exclude=/MEDIA)
excludes+=(--exclude=/BACKUP)
excludes+=(--exclude=/FILES)

if ! tar -czf "$mybackupname" "${excludes[@]}" /; then
  status="tar failed"
elif ! mv "$mybackupname" FILES/Media/Programs/Mint/Backup/ ; then
  status="mv failed"
else
  status="success: size=$(stat -c%s backups/filesystem/$mybackupname) duration=$((`date '+%s'` - $start))"


# Log to system log; handle this using syslog(8).
logger -t backup "$status"

有人看到我哪里出错了吗?

最佳答案

正如“那个人”评论的那样,这里的解决方案是在 bash 文件上运行 dos2unix convert 命令:

sudo dos2unix /etc/init.d/backup.sh

并使用 bash 命令而不是 sh 命令运行它:

sudo bash /etc/init.d/backup.sh

关于linux - tar 备份错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30854039/

相关文章:

sql-server - 将数据库从 2008 R2 转移回 2005

mysql - Plesk 备份还原后所有用户/数据库密码都已更改

bash - 仅列出某个级别的 tar 文件或目录的内容

javascript - 不要包含使用 node-tar 进行存档的绝对路径

linux - 在不退出 linux 程序的情况下重新获得 shell 焦点

python - 安装 Pandas : UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 72: ordinal not in range(128)

linux - 备份(和恢复)一个 Plone 实例

java - 文件核心为 131.63 MB;这超出了 GitHub 的文件大小限制 100.00 MB

c++ - Ubuntu 14.04更新gcc 5.1.0报错

Linux untar 命令将文件名显示为问号