当前位置: 首页 > news >正文

my最新域名是什么北京seo代理商

my最新域名是什么,北京seo代理商,wordpress加一个字段,定制网站开发的目的是什么如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器? 1.1 背景需求1.2 解决方案1.3 附录1.3.1 scp命令用法与示例1.3.1.1 scp命令用法与解释1.3.1.2 scp 命令用法示例1.3.1.2.1 示例一:从本地复制文件到远程计算机1.3.1.2.2 示例二&a…

如何写一个sh脚本将一个本地文件通过 scp命令上传到远程的 centos服务器?

    • 1.1 背景需求
    • 1.2 解决方案
    • 1.3 附录
      • 1.3.1 scp命令用法与示例
        • 1.3.1.1 scp命令用法与解释
        • 1.3.1.2 scp 命令用法示例
          • 1.3.1.2.1 示例一:从本地复制文件到远程计算机
          • 1.3.1.2.2 示例二:从远程计算机复制文件到本地
          • 1.3.1.2.3 示例三:递归复制整个目录到远程计算机
          • 1.3.1.2.4 示例四:从远程计算机下载整个目录到本地
      • 1.3.2 expect 命令用法与示例
        • 1.3.2.1 expect 基本用法
        • 1.3.2.2 expect 用法示例
          • 示例 1:自动登录 SSH
          • 示例 2:自动化 FTP 文件传输
          • 示例 3:交互式配置脚本

1.1 背景需求

这篇博文分享如何使用scpexpect命令写一个脚本来自动填充密码并实现自动登录并上传文件到服务器。

  • 假设目标服务器:192.168.159.175
  • 远程文件服务器登录账号假设是 root
  • 远程文件服务器登录密码假设是 toor
  • /Users/zhaoqingfeng/downloads/test/dist/ 是前端打包部署文件夹
  • /Users/zhaoqingfeng/downloads/test/dist/ 上传到 /var/www/html/your_project/ 目录下

1.2 解决方案

执行脚本输入如下命令:

sh publish.sh 

执行命令脚本内容如下:

#!/bin/bash# local host file folde path
local_dir="/Users/zhaoqingfeng/downloads/test/dist/"# config remote server info
# remote server ip
remote_server="192.168.159.175"
# config your remote server acccount
remote_user="root"
# config your remote server password
remote_password="toor"
# config remote server target path
remote_dir="/var/www/html/your_project/"# upload local file to remote server
expect -c "
spawn scp -r $local_dir $remote_user@$remote_server:$remote_dir
expect {\"*assword:\" {send \"$remote_password\r\"exp_continue}\"yes/no\" {send \"yes\r\"exp_continue}eof
}
"# Check scp command
if [ $? -eq 0 ]; thenecho "Upload file success!"
elseecho "File upload fail"
fi

脚本含义详细解释:

  • 在这个脚本中,使用expect来处理自动登录并上传文件。
    expect -c "...":这是Expect的命令行工具,它允许您在命令行中执行Expect脚本。
    • 在这个命令中,整个Expect脚本被包含在引号内。
  • spawn scp -r $local_dir $remote_user@$remote_server:$remote_dir
    • 这一行使用spawn命令启动了一个新的进程,该进程执行scp命令来将本地目录(或文件)$local_dir传输到远程服务器$remote_server的指定目录$remote_dir
    • -r选项表示递归地复制目录。
      expect {...}:这是Expect脚本的主体,它定义了脚本的行为,根据不同的情况采取不同的操作。
    • "*assword:":这是一个Expect匹配模式(pattern),它用来匹配scp命令执行时可能出现的提示,通常是要求输入密码的提示。*通配符表示匹配任何字符,因此它可以匹配包含"assword:"的任何提示。
    • send "$remote_password\r":当匹配到密码提示时,脚本会使用send命令发送远程密码$remote_passwordscp命令。
    • \r表示回车键,以便输入密码后模拟按下回车键来提交密码。
    • exp_continue:这个命令告诉Expect继续等待并匹配下一个条件。在这种情况下,它会一直等待,直到出现新的匹配条件。
    • "yes/no":这是另一个匹配模式,用于处理SSH连接时可能出现的确认远程主机的提示,通常是在首次连接时出现的。
    • send "yes\r":当匹配到"yes/no"提示时,脚本会自动发送"yes"来确认连接。
    • eof:这个条件匹配到远程scp命令执行结束,即传输完成,并且脚本可以退出。

总体来说就是

  • 使用scp -r 命令递归遍历 /Users/zhaoqingfeng/downloads/test/dist/目录下的所有文件后都上传
  • 它会等待密码提示或是否信任主机的提示,并自动填充密码或发送"yes"以完成操作。
  • 最后,检查scp命令的退出状态以确定上传是否成功。确保将remote_password替换为实际的远程服务器密码。

最后执行成功如下所示:
在这里插入图片描述

1.3 附录

1.3.1 scp命令用法与示例

1.3.1.1 scp命令用法与解释

scp 命令是用于在本地计算机和远程计算机之间进行安全文件传输的工具。

它可以用来上传或下载文件和目录。以下是 scp 命令的基本用法和解释:

scp [options] source_file/directory target_file/directory

scp: 是 Secure Copy 的缩写,用于进行安全的文件复制。

  • options: 可以是一些标志,用于自定义传输行为。一些常见的选项包括:
    • -r:递归复制,用于复制目录及其内容。
    • -P <端口号>:指定远程 SSH 服务器的端口号。
    • -i <身份验证密钥文件>:指定身份验证密钥文件。
    • -v:详细模式,显示详细的传输信息。
  • source_file/directory: 指定要传输的文件或目录的路径。这可以是本地文件系统上的路径或远程计算机上的路径。如果是远程路径,通常以 <用户名>@<远程主机>:<路径> 的格式指定。
  • target_file/directory: 指定传输的目标位置。与源相似,可以是本地或远程路径。

1.3.1.2 scp 命令用法示例

以下是一些示例 scp 命令用法:

1.3.1.2.1 示例一:从本地复制文件到远程计算机
scp localfile.txt user@remotehost:/remote/directory/
1.3.1.2.2 示例二:从远程计算机复制文件到本地
scp user@remotehost:/remote/file.txt /local/directory/
1.3.1.2.3 示例三:递归复制整个目录到远程计算机
scp -r local_directory/ user@remotehost:/remote/directory/
1.3.1.2.4 示例四:从远程计算机下载整个目录到本地
scp -r user@remotehost:/remote/directory/ /local/directory/
  • 这些示例演示了 scp 命令的基本用法,可以根据需要使用不同的选项和参数来满足具体的文件传输需求。
  • 需要注意的是,scp 使用 SSH 协议来保证传输的安全性,因此需要在远程主机上启用 SSH 服务。

1.3.2 expect 命令用法与示例

  • expect 是一个用于自动化交互式任务的命令行工具,它允许你编写脚本来模拟用户输入和对命令行程序的预期输出做出响应。
  • 通常用于自动化任务、测试和自动化配置。

下面是 expect 命令的一些基本用法和示例:

1.3.2.1 expect 基本用法

expect 命令的基本语法如下:

expect [选项] <期望模式> <动作>

选项:可以包括一些常见的选项,如 -c 用于指定要执行的 expect 脚本代码。

<期望模式>:这是一个正则表达式,用于匹配命令行程序的输出,以确定下一步的操作。

<动作>:这是要执行的命令或操作,通常是响应匹配到的输出。

1.3.2.2 expect 用法示例

以下是一些 expect 命令的示例:

示例 1:自动登录 SSH
#!/usr/bin/expect
set timeout 10
spawn ssh user@hostname
expect "password:"
send "your_password\r"
expect "$"
send "ls -l\r"
expect "$"
send "exit\r"
  • 在这个示例中,expect 脚本模拟了 SSH 登录。
  • 它启动 SSH 连接,等待看到 “password:”,
  • 然后发送密码, 接着等待 “$” 提示符,发送了一个 “ls -l” 命令,
  • 最后发送 “exit” 退出 SSH 会话。
示例 2:自动化 FTP 文件传输
#!/usr/bin/expect
set timeout 10
spawn ftp ftp.example.com
expect "Name (ftp.example.com:user):"
send "your_username\r"
expect "Password:"
send "your_password\r"
expect "ftp>"
send "put localfile.txt remotefile.txt\r"
expect "ftp>"
send "quit\r"
  • 这个示例展示了如何使用 expect 自动化 FTP 文件传输。
  • 它启动了一个 FTP 会话,输入用户名和密码,
  • 然后上传一个本地文件到远程服务器。
示例 3:交互式配置脚本
#!/usr/bin/expect
set timeout 10
spawn ./configure.sh
expect "Enter your name:"
send "Your Name\r"
expect "Enter your email:"
send "your@email.com\r"
expect "Choose an option (1/2/3):"
send "2\r"
expect eof
  • 在这个示例中,expect 脚本模拟了一个交互式配置脚本的用户输入。
  • 它运行一个名为 configure.sh 的脚本,
  • 然后模拟了用户对一系列问题的响应。

http://www.yayakq.cn/news/32421/

相关文章:

  • 网站建设常用的6大布局加代码查排名官网
  • 网站建设相关的网站网站开发教程pdf
  • 网站制作多久网站app免费下载软件大全
  • 网页制作与设计站点应该怎么建推动高质量发展的最终目的是什么
  • 网站架构包括哪些网站策划和运营
  • 苏州网站seo服务建设局网站作用
  • 区块链网站建设wordpress主题视频站
  • wordpress网站如何迁移中国搜索引擎大全
  • 中职网站建设与维护考试题做网站手机端需要pc端的源代码吗
  • 知名的网站建设搜索引擎优化怎么做
  • 南宁建设网站培训网站下载的wordpress模板如何添加
  • 南通网站制作系统网站建设步骤列表图片
  • 国外开源网站系统WordPress 付费文章插件
  • 公众号做图网站做网站维护有前途吗
  • 佛山营销网站建设服务公司中国林业建设协会网站
  • php网站制作实例教程可以用足球做的游戏视频网站
  • 临海网站建设公司请人做网站多少钱
  • 东莞专业网站推广怎么做网站制作员
  • 网站首页修改上优化
  • 设计素材网站名称网站建设前准备工作
  • 合肥网站优化seo连云港网站建设培训学校
  • 新网站做百度推广大学生网页设计主题
  • 买了网站模版怎么做上海人才网官网公示
  • 德语网站域名黄金多少钱一克
  • 宠物网站页面设计简笔网站空间和域名价格
  • 网站群系统建设的目的写一个像wordpress
  • 广东人才网官方网站招聘信息江门网页设计培训价格
  • 宣传部总结网站建设办公室现代简约装修
  • dedecms网站空白wordpress数据库密码修改
  • 微商城网站建设怎么样网站seo快速