linux - bash 脚本与 SSH 控制台不同

标签 linux bash ssh debian sh

我有这个命令

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/

相关文章:

linux - 如何使用 grep 进行匹配但不打印匹配项?

linux - Beaglebone 中的 libmodbus 交叉编译和安装

c - 如何从 SensorTag CC3200STK 读取数据

bash - 并行运行两个连续的 bash 脚本 4 次

bash - 使用 shell 变量调用 sed

linux - 找到没有它的二进制文件的路径

php - 使用 PHPSECLIB 通过 SSH 与 RSA 连接

c++ - 在 Linux 中更改程序的权限

vim - 使用 vim 远程编辑服务器上的文件,只能从服务器访问

windows - 使用公钥身份验证为 Windows 设置 OpenSSH