使用sshpass借助scp自动输入密码传输一个文件夹下的全部内容

  1. 直接用scp传输/srv/test.txt 到远程服务器:
scp /srv/test.txt root@服务器IP:/srv/
# 输入密码后传输
  1. 传输整个文件夹使用/srv/*表示:
# 传输本地 /srv/目录下的所有内容到远程服务器/srv_2/目录下
scp /srv/* root@服务器IP:/srv_2/
  1. 自动输入密码传输:

scp是无法做到的,需要sshpass

sudo apt install sshpass

然后就可以传输数据了:

sshpass -p 远程服务器密码 scp /srv/* root@服务器IP:/srv_2/

所以其实就是sshpass -p 远程服务器密码 scp命令

### 部署前后端分离项目的准备 为了成功地将基于IDEA开发的Vue+Spring Boot前后端分离项目部署至Linux服务器,需遵循一系列操作流程来确保应用能够稳定运行。这不仅涉及前端Vue项目的构建与传输,还包括后端Spring Boot服务的配置以及整个系统的优化设置。 ### 打包Vue前端项目 在本地环境中完成Vue项目的最终版本编译工作至关重要。通过执行`npm run build`命令可以生成用于生产环境的静态资源文件夹dist[^1]。此过程会依据vue.config.js中的设定自动生成适用于线上发布的HTML/CSS/JS等静态资产。 ```bash cd /path/to/vue/project npm install npm run build ``` 上述指令首先安装依赖项并随后触发构建任务,从而产出压缩后的静态网页资料供后续上传之用。 ### 处理Spring Boot后端工程 对于采用Maven作为构建工具管理的Java应用程序而言,在IDEA内利用内置功能简化了打包步骤。具体来说: - 清除现有目标目录下的残留数据以防止潜在冲突; - 调用package生命周期阶段自动下载所需库并将整个Web应用封装成可独立执行的JAR/WAR档案形式保存于target子路径之下[^3]。 ```xml <build> <plugins> <!-- 插入maven插件 --> ... </plugins> </build> ``` 以上XML片段展示了pom.xml中定义的一部分POM结构化描述符,其中包含了有关如何组装成品的信息。 ### 构建Shell自动化脚本 编写一段简单的shell script有助于提高效率,减少重复劳动来的错误风险。该批处理文件应当具备如下特性: - 接受必要的参数输入(如远程主机地址、用户名密码组合)以便灵活适应不同场景需求; - 实现SCP协议传送方式把经过预处理过的webapp组件迁移到指定位置; - 设置SELinux安全上下文标签赋予适当读写权限给新加入的对象; ```sh #!/bin/bash # 定义变量存储登录凭证和其他必要信息 HOST="your.server.ip" USER="root" PASSWORD="pass" # 使用scp复制文件到远端机器上的特定目录 sshpass -p $PASSWORD scp -r ./frontend/dist/* ${USER}@${HOST}:/var/www/html/ sshpass -p $PASSWORD ssh ${USER}@${HOST} "chmod -R 755 /var/www/html/" echo "Frontend deployment completed." ``` 这段代码实现了从当前计算机向另一台网络节点转移已打包好的前端页面素材,并调整其访问控制属性使之能被正常加载显示出来。 ### 文件传输与权限分配 借助SFTP客户端或者前述提到的方法之一实现跨平台间的数据交换之后,则有必要针对目的站点内的各个组成部分授予恰当的操作许可级别。通常情况下,可通过修改inode元数据里的mode字段达到这一目的——即运用`chmod`实用程序改变相应bitmask位模式表示法所对应的特权集合状态。 ```bash sudo chmod +x start.sh sudo chown www-data:www-data -R /opt/springboot-app/ ``` 这里的第一条语句使得名为start.sh的外壳程序获得被执行的能力;而第二条则指定了Apache/Nginx Web server进程的身份标识拥有者及其所属组别对位于/opt/springboot-app/内部的所有实体享有完全掌控权。 ### 开启防火墙端口映射 考虑到网络安全策略可能阻挡外部请求抵达内部监听的服务实例,因此务必确认相关联的通信信道畅通无阻。可以通过编辑iptables规则链表或是调用firewalld守护进程接口开放HTTP(S)/其他自定义业务逻辑交互所需的TCP端口号范围[^2]。 ```bash sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --reload ``` 这两行命令分别指示永久性添加一条允许进入流量穿越公共区域到达第80号端点的新规例记录,紧接着刷新全局过滤器列表使更改即时生效。 ### 启动应用程序 最后一步就是激活已经就绪的应用容器。如果选择了jar包的形式分发的话,那么可以直接依靠java虚拟机解释执行入口类main()函数启动后台线程池提供RESTful API接口响应能力。 ```bash nohup java -jar spring-boot-demo.jar & tail -f nohup.out ``` 此处采用了nohup机制绕过终端挂起信号影响长期存活的任务进程,并且重定向标准输出流至日志文件方便日后排查故障原因所在之处。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆萌的代Ma

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值