【问题标题】:bash script not the same as SSH console [duplicate]bash脚本与SSH控制台不同[重复]
【发布时间】:2014-03-04 12:48:08
【问题描述】:

我有这个命令

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-Console (Putty) 中运行此命令,一切正常!

第二个,我写了一个bash-Script(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-Console 中以bash ./myscript.sh 启动此脚本,但最后的结果不一样。 tar-命令忽略第二个--exclude 参数。

怎么了? 我认为,bash 脚本与 Putty 之类的 SSH 控制台相同。

【问题讨论】:

  • 它们可能是tar 的不同版本。试试tar --version 找出答案。
  • 不,文件版本相同,bash脚本在“root”-user下运行,“root”-user也在ssh-console登录
  • 您能否编辑您的帖子并添加您的两个命令的结果。我相信它会有所帮助。

标签: linux bash ssh debian sh


【解决方案1】:

作为我在网上找到的一个例子:

一个简单的备份脚本是:

#!/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 上使用终端要容易得多

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-27
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多