我对与HPC计算相关的术语完全不熟悉,但我刚刚看到EC2在AWS上发布了他们的新型实例,该实例由新的Nvidia Tesla V100提供支持,它具有两种"核心":Cuda Cores(5.120),以及张量核心(640).两者有什么区别?
我有一个私有 github 存储库,我想将其克隆到 EC2 实例中。从我的本地计算机,我通过私钥访问它(这样我只能使用我的密钥而不是密码进行克隆、拉取、推送)。我不想将密钥存储在 EC2 实例上,因为我不是唯一访问它的人。我正在尝试使用 ssg-agent 转发来做到这一点。我已将密钥添加到本地计算机中的代理,然后使用以下命令登录 EC2 实例:
ssh -A ec2-user@instanceip
Run Code Online (Sandbox Code Playgroud)
但是当我尝试进行 git 克隆时,它仍然会提示我输入用户名和密码。我已经更改了 ec2 实例中的 ssh 配置以允许代理转发,并且我的密钥已添加到代理中。
我正在尝试创建一个运行zookeper的有状态集,但我希望它以非root身份运行(即在zookeper用户下)。
这是用于此目的的图像:
https://github.com/kubernetes-retired/contrib/blob/master/statefulsets/zookeeper/Dockerfile
这就是我尝试安装卷的方式(显然我需要一个初始化容器):
initContainers:
# Changes username for volumes
- name: changes-username
image: busybox
command:
- /bin/sh
- -c
- |
chown -R 1000:1000 /var/lib/zookeeper /etc/zookeeper-conf # <<<<--- this returns
# cannot change ownership, permission denied
# read-only filesystem.
containers:
- name: zookeeper
imagePullPolicy: IfNotPresent
image: my-repo/k8szk:3.4.14
command:
- sh
- -c
- |
zkGenConfig.sh # The script right here requires /var/lib/zookeper to be owned by zookeper user.
# Initially zookeeper user does own it as per …Run Code Online (Sandbox Code Playgroud) 我们有一个在 AWS 上运行的 RDS Aurora - MySQL 5.6 兼容集群。它有一个写入器实例和一个只读副本。我们想通过运行以下命令来检查表的状态(查看它是否已损坏):
check table table_name;
Run Code Online (Sandbox Code Playgroud)
我们只能在writer端点运行这个命令,如果我们在只读端点运行相同的命令,它将永远挂起,在 processlist 中留下一个查询(出于安全原因,其余的输出被删除);
+----+---------+-------------+-----------------------------+
| id | command | state | info |
+----+---------+-------------+-----------------------------+
| 4 | Killed | System lock | check table table_name |
+----+---------+-------------+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
我们不能使用以下任何一种来终止这个查询:
CALL mysql.rds_kill(4)
CALL mysql.rds_kill_query(4)
Run Code Online (Sandbox Code Playgroud)
他们不工作。显然,在运行该命令(检查表 table_name)后,该表将被锁定,并且不允许我对该特定表运行任何进一步的命令。
AWS 支持建议升级 Aurora 版本,但我们尝试了 3 个不同的版本,我们在所有版本中都看到了问题:
极光 v1.19.2(最新)
极光 v1.17.8
极光 v1.16
所以问题是,为什么会发生这种情况?在 Aurora MySQL 5.6 中检查表是否损坏的正确命令是什么?
警告: 我们尝试了 3 个不同的集群,问题出在所有集群中,所以很明显的建议:不要在您的生产数据库中运行此命令。
I have the following block:
- name: pull several files
get_url:
url: https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-1.txt
headers: "X-JFrog-Art-Api:{{ vars.artifactory_api_key }}"
dest: /var/my-location
Run Code Online (Sandbox Code Playgroud)
but I need to retrieve a lot of files with different names from the same folder, example:
https://my-jfrog.jfrog.io/my-jfrog/my-folder/my-file-2.txt
https://my-jfrog.jfrog.io/my-jfrog/my-folder/some-filename-1.sh
https://my-jfrog.jfrog.io/my-jfrog/my-folder/another-file.jar
Run Code Online (Sandbox Code Playgroud)
How can I iterate over this list so I reuse the same values? (headers and dest?)
我有一个具有以下格式的字符串:foo://bar_baz.
我需要将整个字符串编码为 URL 友好。现在我正在这样做(正如大多数答案似乎指出的那样):
from urllib.parse import urlencode
mydict = {'q': 'foo://bar_baz'}
urlencode(mydic)
Run Code Online (Sandbox Code Playgroud)
返回:
'q=foo%3A%2F%2Fbar_baz'
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地使用它,但必须定义一个字典并分配一个q我不会使用的键(在本例中)似乎违反直觉/额外的步骤。此外,我需要完成正确解析输出的步骤以删除 ,q=
因为我只需要对 key 的值进行编码q。分割q=可以做到这一点,但如果 foo/bar/baz 实际上是怎么办fooq=?它可能会破坏东西。
我希望做类似的事情:
# pass a string instead of a dict
encoded_string = urlencode("foo://bar_baz")
Run Code Online (Sandbox Code Playgroud)
但这当然会引发错误。
我有以下 bash 脚本:
#!/bin/bash
function hello {
echo "Hello World!"
}
trap hello EXIT
Run Code Online (Sandbox Code Playgroud)
问题是该函数将在该脚本的任何退出代码上执行。如果我exit 1在脚本末尾附加 an ,Hello World!将会被打印,但它也会在 exit 0 上打印。
有没有办法在脚本中运行函数,但前提是脚本仅以退出代码 1 退出?(实际上除了 0 之外的任何值都可以。)
我的理解是,当您sleep 10在给定的 shell(比如 bash)中运行任何命令(比如 )时,幕后发生的事情是调用 fork 系统调用,并且sleep 10现在作为子进程运行,父进程是 bash shell我执行了sleep。
现在,如果我想发送sleep到后台,我可以执行sleep 10 &或运行sleep 10并按 ctrl+z,以便将进程发送到后台。pstree 显示,使用这些选项中的任何一个,sleep 都会继续成为 bash shell 的子进程。
现在我的问题是,当通过 SSH 执行此操作时,我注意到以下内容: 如果我这样做:sleep 999 &并且sleep 888<- 后跟 ctrl+z,并关闭 ssh 会话,则只能sleep 999 &幸存。
为什么是这样?我实际上期待其中之一:
在 Jenkins 凭证中,我有几种类型的凭证。其中之一称为my_password“秘密文本”类型,在 Jenkinsfile 中,我可以像这样访问:
environment {
my_env_var = credentials('my_password')
}
Run Code Online (Sandbox Code Playgroud)
现在,我创建了一个名为“用户名和密码”类型的凭证,user_and_pass在其中我可以在同一凭证中设置两个字段。如何同时访问两个参数并将它们加载到环境变量中?我在想这样的事情:
environment {
my_user = credentials('user_and_pass').someFunctionThatReturnsUser()
my_pass = credentials('user_and_pass').someFunctionThatReturnsPass()
}
Run Code Online (Sandbox Code Playgroud)
但我不认为它是这样工作的。
我想编写一个与所有具有字母字符,数字和下划线的字符匹配的脚本。可能的有效字符串:
asd_asd
Asd_asd
asd_123
123_asd
123_aSD
Run Code Online (Sandbox Code Playgroud)
等等。到目前为止,我尝试过的是:
if [[ "$LINE" =~ [a-zA-Z0-9_] ]]
Run Code Online (Sandbox Code Playgroud)
但这将匹配包含以下任何字符的任何字符:!@#$%^&*()_ +} {|?> <`!,以及其他奇怪的符号。
我曾考虑过将特殊字符放在列表中,如果字符串包含列表中的一个字符,则忽略该字符串,但是我恐怕可以跳过一个字符。
在这种情况下最好做什么?