以下内容对我不起作用:
ssh user@remote.server "k=5; echo $k;"
Run Code Online (Sandbox Code Playgroud)
它只返回一个空行.
如何在远程会话(ssh)上分配变量?
注意:我的问题不是关于如何将局部变量传递给我的ssh会话,而是关于如何创建和分配远程变量.(应该是一个非常直接的任务?)
编辑:
更详细地说,我试图这样做:
bkp=/some/path/to/backups
ssh user@remote.server "bkps=( $(find $bkp/* -type d | sort) );
echo 'number of backups: '${#bkps[@]};
while [ ${#bkps[@]} -gt 5 ]; do
echo ${bkps[${#bkps[@]}-1]};
#rm -rf $bkps[${#bkps[@]}-1];
unset bkps[${#bkps[@]}-1];
done;"
Run Code Online (Sandbox Code Playgroud)
find命令工作正常,但由于某种原因$bkps没有填充.所以我的猜测是,这将是一个变量赋值问题,因为我认为我已经检查了其他所有内容......
我目前正在编写一个bash shell脚本,以将我们svn存储库的最新版本传输到Web服务器.这是通过使用svn导出到服务器A并使用web服务器进行rsync来完成的,创建了一个特殊用户(称为sync_user),在每一方(服务器A和Web服务器)上具有足够的权限来执行这些更新.该脚本使用"su sync_user"执行svn导出,使用rsync作为sync_user:
export -f sync_section
su sync_user -c "sync_section $source $tmp $dest"
Run Code Online (Sandbox Code Playgroud)
其中sync_section是脚本中的一个函数:
# critical section which performs the actual website update (export & sync)
# takes 3 parameters: source, tmp, dest
function sync_section {
source=$1
tmp=$2
tmp_old=$tmp"_old"
dest=$3
#enter critical section
set -e
# export to temp folder on server A
svn export -q --force $source $tmp --native-eol LF
# rsync with remote live website folder.
rsync -avzhiO $tmp $dest
# clean up
rm -rf $tmp_old
mv -f …Run Code Online (Sandbox Code Playgroud) 我正在为使用Django Rest Framework和Django 1.11构建的Web API编写一些集成测试。当我使用DRF的APIClient将请求发送到我的API端点时,我的测试通过了,但是当我使用CoreAPIClient时,请求引发了异常并返回内部服务器错误。但是,如果我使用Postman,甚至使用coreapi-cli命令,它都可以正常工作。
我的测试代码:
这有效:
from rest_framework.test import APITestCase, APIClient
self.client = APIClient()
account_params = {
'email': 'test1@example.com',
'username': 'testuser1',
'password': 'test1password'
}
account_response = self.client.post(reverse('account-list'), data=account_params)
Run Code Online (Sandbox Code Playgroud)
但是使用核心api客户端不起作用:
from rest_framework.test import APITestCase, CoreAPIClient
self.client = CoreAPIClient()
self.schema = self.client.get('http://localhost/api/schema')
params = {
'email': 'test3@example.com',
'username': 'testuser3',
'password': 'test3password'
}
self.test_user = self.client.action(self.schema, ['accounts', 'create'], params=params)
Run Code Online (Sandbox Code Playgroud)
这是我得到的例外:
Error
Traceback (most recent call last):
File "/home/pitt/dev/cps/cps_mono/surveys/tests.py", line 429, in setUp
self.test_user = self.client.action(self.schema, ['accounts', 'create'], params=params)
File "/home/pitt/.virtualenvs/cps_mono/lib/python3.5/site-packages/coreapi/client.py", line 178, …Run Code Online (Sandbox Code Playgroud)