写一个linux脚本,远程sftp上传文件,并统计上传了多少文件,上传文件为0则echo返回“”
时间: 2024-09-27 18:05:28 浏览: 31
在Linux中,可以使用`expect`工具结合`sftp`命令来创建一个脚本来实现远程SFTP上传文件并统计上传文件的数量。下面是一个基础的示例:
```bash
#!/usr/bin/expect
set timeout -1
spawn sftp user@remote_host # 用实际的用户名和主机地址替换这里的user和remote_host
expect "password:" # 等待密码提示
send "your_password\r" # 用实际的密码替换这里的your_password
# 指定要上传的目录
set dir_to_upload /local/path/
cd $dir_to_upload # 切换到本地要上传的目录
ls | while read file # 遍历当前目录下的所有文件
{
expect "* " # 等待文件名前的星号
send "$file\n" # 发送文件名给sftp
if { $? == 0 } # 如果发送成功
{
incr count_files # 文件上传计数加一
}
}
# 统计上传的文件数量
puts "已上传了$count_files个文件."
# 清理连接
send "exit\r"
expect eof
# 检查上传文件数量是否为0
if {$count_files == 0} {
echo ""
}
```
请注意将上述脚本中的`user`, `remote_host`, `your_password`, `/local/path/`替换为你实际的值。
阅读全文