- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 vagrant 1.6.3 版本和 vagrant 的默认 linux box。
我的盒子运行良好,所以我在 vagrantfile 中添加了一个外部 shell 脚本。该脚本包含此命令。
自定义.sh文件
#!/bin/bash
DEPLOY_PASSWORD="xxxxx" &&
DB_NAME="test-sync.sql.gz" &&
apt-get install sshpass &&
sshpass -p "$DEPLOY_PASSWORD" scp -P 22 -v user@test01.admin.com:"~/mysql_dumps/$DB_NAME" "./"
我尝试手动运行该命令,它运行良好,没有任何问题,但它不适用于 bash 脚本。这是我通过运行 vagrant provision 得到的错误日志:
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!
chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell test-sync.sql.gz
Vagrant 文件
Vagrant.configure("2") do |config|
# Load config JSON.
config_json = JSON.parse(File.read("config.json"))
# Prepare base box.
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
# Configure networking.
config.vm.network :private_network, ip: config_json["vm"]["ip"]
# Configure forwarded ports.
config.vm.network "forwarded_port", guest: 35729, host: 35729, protocol: "tcp", auto_correct: true
config.vm.network "forwarded_port", guest: 8983, host: 8983, protocol: "tcp", auto_correct: true
# User defined forwarded ports.
config_json["vm"]["forwarded_ports"].each do |port|
config.vm.network "forwarded_port", guest: port["guest_port"],
host: port["host_port"], protocol: port["protocol"], auto_correct: true
end
# Customize provider.
config.vm.provider :virtualbox do |vb|
# RAM.
vb.customize ["modifyvm", :id, "--memory", config_json["vm"]["memory"]]
# Synced Folders.
config_json["vm"]["synced_folders"].each do |folder|
case folder["type"]
when "nfs"
config.vm.synced_folder folder["host_path"], folder["guest_path"], type: "nfs"
# This uses uid and gid of the user that started vagrant.
config.nfs.map_uid = Process.uid
config.nfs.map_gid = Process.gid
else
config.vm.synced_folder folder["host_path"], folder["guest_path"]
end
end
end
# Run initial shell script.
config.vm.provision :shell, :path => "chef/shell/initial.sh"
# Customize provisioner.
config.vm.provision :chef_solo do |chef|
chef.json = config_json
chef.custom_config_path = "chef/solo.rb"
chef.cookbooks_path = ["chef/cookbooks/berks", "chef/cookbooks/core", "chef/cookbooks/custom"]
chef.data_bags_path = "chef/data_bags"
chef.roles_path = "chef/roles"
chef.add_role "vdd"
end
# Run final shell script.
config.vm.provision :shell, :path => "chef/shell/final.sh", :args => config_json["vm"]["ip"]
#custom tasks
config.vm.provision :shell, :path => "custom.sh", :args => config_json["test_config"]["db_name"]
end
最佳答案
我不使用 sshpass(在脚本中使用明文密码的想法让我感到畏缩),但手册页似乎建议在脚本中你应该设置变量 SSHPASS 而不是使用-p 咒语……
EXAMPLES
Run rsync over SSH using password authentication, passing the password on the command line:
rsync --rsh='sshpass -p 12345 ssh -l test' host.example.com:path .
To do the same from a bourne shell script in a marginally less exposed way:
SSHPASS=12345 rsync --rsh='sshpass -e ssh -l test' host.example.com:path .
关于linux - scp 无法从 vagrant box 中的 bash 脚本运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25295170/
考虑这样的代码: trait Foo { fn foo(&self); } fn consume_func(b: Box>) { unimplemented!(); } fn prod
考虑这样的代码: trait Foo { fn foo(&self); } fn consume_func(b: Box>) { unimplemented!(); } fn prod
我不明白在 Rust 中,当我们 Box 父结构时,结构中的结构发生了什么。 struct Outer1 { child: Inner1, } struct Inner1 { n: i
我将开始开发一个新网站,并准备处理浏览器用于计算元素宽度和高度的不同方法 (box model stuff)。不知何故,我想到了:如果我只是将 box-sizing 应用于网站中的所有元素会怎么样?
在 java 应用程序中使用 box java sdk 访问 box api 时,我遇到了下面提到的错误。请指出此问题的原因。 Exception in thread "main" com.box.s
计算盒子的宽高时,outline width like outline: 5px dashed red; 如果 box-sizing:border-box,框的宽度/高度是否会考虑轮廓? 最佳答案 我
读完the subtyping chapter of the Nomicon ,我无法理解类型参数的协方差。特别是对于 Box类型,描述为:T is covariant . 但是,如果我写这段代码:
给定这段代码: trait Trait {} struct Child; impl Trait for Child {} struct Father { child: &'a Box, } i
与文件 chooser for dropbox 类似,box.com 有没有? 最佳答案 Box 目前不维护自己的“文件选择器”;然而,有一个很棒的服务叫做 filepicker.io,它充当几乎所有
感谢您对我的问题的回复:Is this a bug of Box API v2 when getting events 这是一个与此相关的新问题。问题是我不能可靠地使用从以前的调用中获得的 next_
我试图让 Box Enterprise API 使用 As-User 工作。我有一个管理员帐户,我用它来尝试检索子帐户中的内容。 我首先使用管理员帐户检索子帐户的用户ID。并将用户 ID 添加为字段“
我想在一个简单的导轨中本地查看我的 Box 帐户中的图像 app .目标是使用这些图像进行幻灯片放映。我寻找必要的参数来传递每个图像相关 url成标签。看来我只能下载图像,或从 Box 应用程序中查看
这个问题在这里已经有了答案: Why doesn't Rust support trait object upcasting? (5 个答案) 关闭 4 年前。 给定代码 trait Base {
所以基本上我尝试从https://github.com/Gor-Ren/gym-jsbsim转换这个自定义健身房环境。使用farama基金会的gymnasium api。这是我正在处理的存储库:htt
我是BOX API的新手,因此正在使用API的v2。我正在从我的应用程序本地进行REST调用。 我想上传一个以前可能上传或未上传的文件。我知道父文件夹ID和文件名。我需要覆盖现有文件,或者至少要再
我已被授予访问(协作)文件夹的权限。我需要的是每天访问该文件夹并从中获取文件。现在我生成的开发者 token 将在 1 小时后过期。有什么办法可以得到authorization code没有第一站,它
我正在尝试将 Box 中上传的文件与另一个外部系统同步。我使用哪些 API 来获取“在给定 dd/mm/yy hh:mm:ss 后上传/更新的所有文件的列表”? 干杯! 最佳答案 我认为User Ev
Vagrant 文档和 CLI 使用术语“box”和“base box”。命名意味着基本框是一种特定类型的框,但是,这些术语似乎被用作同义词。 Vagrant“盒子”和 Vagrant“基础盒子”之间
Box 允许您为文件夹创建标签,但如何从 API 中获取该信息?我在 GET /folders/{id} API 中没有看到标签返回.标签也不被视为元数据。 最佳答案 如果你看看 Fields wri
我正在尝试确定应该使用哪个版本的 Box api。我的决定取决于 v1 api 的 EOL 时间线。我不想完成我的应用程序,就在应用程序发布之前(或之后不久),v1 api 停止工作。 我很乐意使用
我是一名优秀的程序员,十分优秀!