请不要说我有重复的帖子(我知道这是一个常见问题),但我想知道我的错误并从中学习
问题是为什么这个脚本对我不起作用?我想找出我做错了什么
操作系统 Centos 6
问题:我需要压缩并发送位于此目录中的一些文件
/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)
所以我与其他人分享我制作的脚本,以防他们需要
干杯
最佳答案
您在脚本中混合了 Windows 和 Unix 的行尾
如果您使用 od -x myScript.sh
查看它,您将看到混合字符 0a 和 0d 表示行尾。
确保正确修复它(例如使用 vi )并且您的脚本应该可以工作
关于linux - 在 bash 脚本中运行 tar 返回 "Output with bankrupt according to previous errors",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28708810/