我有这个命令
tar -czf /var/log/apache2/logfile_backups/dBackup_$(date "+%d-%m-%Y").tar.gz /var/log/apache2/ --exclude=/var/log/apache2/logfile_backups --exclude='*.sh'
首先,我在 SSH 控制台(Putty)中运行此命令,一切正常!
第二,我编写了一个bash脚本(myscript.sh)
#!/bin/bash
tar -czf /var/log/apache2/logfile_backups/dBackup_$(date "+%d-%m-%Y").tar.gz /var/log/apache2/ --exclude=/var/log/apache2/logfile_backups --exclude='*.sh'
并在 SSH 控制台中使用 bash ./myscript.sh
启动此脚本,但是最后的结果并不一样。 tar
-命令忽略第二个 --exclude
参数。
怎么了? 我认为,bash 脚本与 Putty 等 SSH 控制台相同。
最佳答案
作为我在网上找到的一个例子:
一个简单的备份脚本是:
#!/bin/bash
OF=/var/my-backup-$(date +%Y%m%d).tgz
tar -cZf $OF /home/me/
因此尝试将命令更改为:
tar -cZf /var/log/apache2/logfile_backups/dBackup_$(date +%Y%m%d).tgz.gz /var/log/apache2/ --exclude=/var/log/apache2/logfile_backups --exclude='*.sh'
1) 您使用什么发行版?
2) 您是否在一台服务器上运行命令和脚本?
3) 尝试chmod +x script.sh
,然后通过说./scipt.sh
来调用它
4) 通过输入 tar --version
指定 tar 版本
你说:
我认为,bash 脚本与 Putty 等 SSH 控制台相同。
确保它们彼此相同,但在 Linux 上使用终端要容易得多
关于linux - bash 脚本与 SSH 控制台不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22154550/