Exclude-File in Solaris 8 doesn't work
我要为整个Solaris系统加焦油。所以我写了一个剧本。当我把这个脚本作为根运行时,一切正常!当我用cron运行相同的脚本时,我会得到一个
tar: --exclude-from=: No such file or directory
或
tar: can't change directories to --exclude-from=/home/BACKUP: No such file or directory
我要做的是:
1 2 3 4 5 6 7 8 | #!/usr/local/bin/bash ######################################################################### # Author: Marcus Gehring # ######################################################################### #tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from=/home/BACKUP/$(uname -n).exclude / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from="/home/BACKUP/$(uname -n).exclude" / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 |
但两者都不起作用。我还测试了以下内容:
1 | tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X"/home/BACKUP/$(uname -n).exclude" / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 |
排除文件如下:
1 2 3 | /home* /usr/local/var/httpd* /usr/local/var/openldap-data* |
如果这是原因,我还尝试了排除文件的另一部分。所以我的第二个排除文件内容是:
1 2 3 | /home /usr/local/var/httpd /usr/local/var/openldap-data |
有人知道怎么回事吗?仅作澄清:排除、日志和存档位于一个目录中。
焦油版本:
tar (GNU tar) 1.13.25
Copyright ? 2001 Free Software Foundation, Inc.
This program comes with NO WARRANTY, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public
License; see the file named COPYING for details. Written by John
Gilmore and Jay Fenlason.
当做
马库斯
更新1:
您好,马克,感谢您的支持:)但这只是我备份的命令_script.sh;)在crontab中,调用是:
1 2 | # Backup on UNIX since 08162017 01 5 * * * /home/BACKUP/backup_script.sh |
更新2:
白天,我测试了脚本中的其他几个命令:
1 2 3 4 5 | tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from=/home/BACKUP/$(uname -n).exclude / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz --exclude-from="/home/BACKUP/$(uname -n).exclude" / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X '/home/BACKUP/$(uname -n).exclude' / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz -X"/home/BACKUP/$(uname -n).exclude" / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 tar -cvpf /home/BACKUP/$(uname -n)_$(date +%Y-%m-%d).tar.gz"/home/BACKUP/$(uname -n).exclude" / >> /home/BACKUP/$(uname -n)_BACKUP.log 2>&1 |
结果都是一样的。排除的文件没有排除,在-x路径上我得到了"tar:-x:没有这样的文件或目录"与on相同"--排除在"之前"。
问题是从crontab开始时使用的tar和作为用户tar的区别。
只需将