小编Pit*_*itt的帖子

ssh远程变量赋值?

以下内容对我不起作用:

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没有填充.所以我的猜测是,这将是一个变量赋值问题,因为我认为我已经检查了其他所有内容......

unix variables ssh

9
推荐指数
1
解决办法
1万
查看次数

rsync pop_dir"/ home/user_x"失败:权限被拒绝,为什么?

我目前正在编写一个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)

unix svn permissions rsync

6
推荐指数
1
解决办法
1553
查看次数

DRF + CoreAPIClient + psycopg2引发异常,接口错误:连接已关闭

我正在为使用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)

python django psycopg2 core-api django-rest-framework

6
推荐指数
1
解决办法
362
查看次数