运行 tar 在 bash 脚本中 returns "Output with bankrupt according to previous errors"

Running tar in a bash script returns "Output with bankrupt according to previous errors"

请不要说我重复了post(我知道这是一个常见问题)但我想知道我的错误并从中吸取教训

问题是为什么这个脚本对我不起作用?我想找出我做错了什么

OS 森托斯 6

问题 : 我需要 tar 并发送位于此目录中的一些文件 /home/teamportal/data/filestorage/www/_cron_db_bak

我在网上查找和粘贴的内容

#!/bin/bash
day=$(date +%F)
Folder="/home/teamportal/data/filestorage/www/_cron_db_bak"
File="/root/backup/$day.tar"
tar cvf $File $Folder
cat /home/mailmessage.txt |mutt -a $File -s "BACKUP Database" -- mail1@gmail.com mail2@somedomain.com mail3@gmail.com
find $File* -mtime +90 -exec rm {} \;

错误

tar: Removing leading `/' from member names
tar: /home/teamportal/data/filestorage/www/_cron_db_bak\r\r: stat failed: No such file or directory
tar: Output with bankrupt according to previous errors
find: missing argument to `-exec'

顺便说一句,邮件已发送,但文件已损坏,查看目录时我注意到

ls /root/backup
^M^M    2015-02-25^M.tar^M     2015-02-25^M.tar.gz^M    

感谢任何人让我明白我做错了什么。

干杯

编辑: 谢谢你让我明白了问题(在这种情况下是windows)

所以我会与其他人分享我制作的脚本,以防他们需要

http://pastebin.com/uabfLjQW

干杯

您在脚本中混用了 windows 和 unix 的行尾

如果您使用 od -x myScript.sh 查看它,您会看到行尾字符 0a 和 0d 的混合。

确保你正确修复它(例如使用 vi )并且你的脚本应该工作