sftp上传bash忽略文件

时间:2018-02-06 19:27:45

标签: linux bash git sftp

我尝试实现一些半自动sftp上传/部署。主键是 NOT 来上传所有文件。我不知道要上传哪些文件,但我知道哪些文件不能上传。

我的bash脚本如下:

#!/bin/bash

IP="123.123.123.123"
HOSTNAME="ftp.my-host.com"
PATH="subdirectory"

sftp username@$HOSTNAME:$PATH < "sftp-pattern"

sftp-pattern文件中我想存储我的sftp命令。但我找不到任何提示如何忽略几种模式。比如*.sql

理想情况下,我会忽略所有被监控的内容。

有ssh连接。

2 个答案:

答案 0 :(得分:1)

由于您使用的是shell脚本,因此可以使用循环。这样的事情应该有效。

#!/bin/bash

IP="123.123.123.123"
HOST="ftp.my-host.com"
DIR="/tmp/"

for f in `/bin/ls $DIR`
do
  if echo $f | /usr/bin/grep  '.sql' > /dev/null
  then
    echo SKIPPING $f
  else
   sftp username@$HOST:$DIR/$f
  fi
done

答案 1 :(得分:0)

@Clijsters提到的答案应该是git-ftp。它功能更丰富,不需要使用循环和管道。

dwrights解决方案正在运行,如果它只是 ONLY 要排除的SQL。

谢谢!