如何在 Bash 脚本中获取当前 Debian 或 Ubuntu 版本的简单小写名称,例如stretch、jessie、xenial、artful?
我距离用一个 Jenkins 文件替换大量定制的 Jenkins 文件仅一步之遥。我需要获取的是包含正在执行的 Jenkinsfile 的目录。我正在使用声明性管道语法。
我查看了groovy代码中的几个想法,但找不到如何获得它。
对于那些需要查看特定内容的人,Jenkinsfile 的顶部如下所示:
#!/usr/bin/env groovy
pipeline {
agent any
environment {
tf='/var/lib/jenkins/tools/terraform0108/terraform'
dir='clients/xyz/us-east-1/dev'
}
Run Code Online (Sandbox Code Playgroud)
该变量dir被分配给该 Jenkinsfile 的位置。稍后在 groovy 代码中访问 dir。我希望能够省略该分配并仅从执行脚本的上下文中选取该目录。
我尝试了几种不同的方法,例如包含的步骤
script {
println __FILE__
}
Run Code Online (Sandbox Code Playgroud)
和
script {
scriptDir = new File(getClass().protectionDomain.codeSource.location.path).parent
println scriptDir
}
Run Code Online (Sandbox Code Playgroud)
两者都没有运行(在FILE情况下给出了不存在的变量,在第二种情况下给出了权限冲突)。我尝试了“${ FILE }”和其他变体。
我需要在步骤 -- sh 块中使用该目录,因此我相信它需要位于环境项中。
现在,Jenkins 作业配置提供了 Jenkins 文件的路径,但我不想重复该操作以在该级别创建另一个环境变量。
已经咨询过:
感谢帮助。
我了解隐私扩展,并且您可以通过设置 use_tempaddr 来启用它们。不幸的是我没有找到不同设置的任何解释。我阅读的每篇文章都使用了 1 或 2 或引用了 kernel.org,而没有进一步解释。
Run Code Online (Sandbox Code Playgroud)use_tempaddr - INTEGER Preference for Privacy Extensions (RFC3041). <= 0 : disable Privacy Extensions == 1 : enable Privacy Extensions, but prefer public addresses over temporary addresses. > 1 : enable Privacy Extensions and prefer temporary addresses over public addresses. Default: 0 (for most devices) -1 (for point-to-point devices and loopback devices)
1但我还是不明白和之间的区别>1。公共 IP 与临时 IP 相比是什么?是用 DHCP 分配/静态设置的吗?或者是其他东西?
感谢您的帮助!
我正在使用 postfix+dovecot 设置一个小型邮件服务器。运行oppenssl s_client -connect mail.myserver.com:993(IMAP) 时,会显示服务器的证书,我可以让电子邮件客户端正常连接。
但是,当我将端口更改为25(SMTP) 时,出现错误
SSL routines:ssl3_get_record:wrong version number,并且没有返回任何证书。
从我的研究来看,10-ssl.conf文件中允许的协议和密码似乎是问题所在,但我尝试了很多组合,但仍然出现相同的错误。这就是他们目前的情况:
ssl_protocols = TLSv1.2 TLSv1.1 TLSv1 !SSLv3 !SSLv2
ssl_cipher_list = HIGH:!SSLv2:!SSLv3:!TLSv1.0:!aNULL:!MD5
Run Code Online (Sandbox Code Playgroud)
如何让服务器返回 SMTP 端口上的证书?
我正在do-release-upgradeVM 上执行从全新安装的 Ubuntu 16.04 到 18.04。
升级后,我无法再通过端口 22 访问。再试一次,我在执行升级之前安装了 dropbear 并将其设置为端口 2222,这奏效了。
现在尝试将 sshd 重新联机,sudo /usr/sbin/sshd -D -d尝试连接时出现以下信息:
root@server:/etc/ssh# sudo /usr/sbin/sshd -D -d
sudo: getrlimit: Function not implemented
sudo: setrlimit: Function not implemented
sudo: setrlimit: Function not implemented
sudo: getrlimit: Function not implemented
sudo: setrlimit: Function not implemented
sudo: setrlimit: Function not implemented
debug1: sshd version OpenSSH_7.6, OpenSSL 1.0.2n 7 Dec 2017
debug1: private host key #0: ssh-rsa SHA256:tcrXf+XQwDjGFkl7trXSgNjzu1ldhoYUHrejxPnHFdg
debug1: private host key #1: ecdsa-sha2-nistp256 SHA256:LM2oV2f0unkLP3vt7JB0ebWJsIAPXV1bhc6N1hg0nNk …Run Code Online (Sandbox Code Playgroud) 我有一个 OpenVPN 服务器 (pivpn.io) 和三个服务器客户端。
我正在尝试为 VPN 客户端设置静态 IP 地址。
我已经创建了ipp.txt /etc/openvpn/ccd/ipp.txt.
该文件ipp.txt使用以下语法:
[客户端名称],[IP 地址]
miami-test,10.8.0.5
连接服务器时不发出静态 IP 地址。
我正在尝试从机器 A 复制文件:
apt policy openssh-client
openssh-client:
Installiert: 1:7.2p2-4ubuntu2.4
Run Code Online (Sandbox Code Playgroud)
到机器 B:
apt-cache policy openssh-client
openssh-client:
Installiert: 1:5.5p1-6+squeeze5
Run Code Online (Sandbox Code Playgroud)
在 A:
scp myfile <server>:/myfile
md5sum myfile
2ba67c5e816350d4d2e2e7fd883037e7
file myfile
myfile: Python script, ASCII text executable
Run Code Online (Sandbox Code Playgroud)
在 B 上:
md5sum myfile
8883620c2a0878da1db273101b55124d
file myfile
myfile: ASCII Java program text
Run Code Online (Sandbox Code Playgroud)
查看文本文件,似乎每一行都比最后一行多一个空格,所以不是:
import argparse, os, sys
from subprocess import check_output
def count_voicemails(dir):
# find is faster than ls, since it does not check attributes
command = 'find {}/INBOX -maxdepth 1 | wc -l'
count = …Run Code Online (Sandbox Code Playgroud) 我已经与 Galera 合作了几个月,喜欢故障转移和冗余。我有一个正在测试中的 Postgres 数据库,可能会转移到生产中。Postgres 是否有 Galera 等价物?我读过 Postrgres 的“备用”数据库,但不确定它们在自动故障转移/VIP 方面是否与 Galera 相同。
GKE 上运行的 ElasticSearch 集群出现问题。具有“数据”角色的节点开始意外崩溃并出现错误:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
bootstrap checks failed
Run Code Online (Sandbox Code Playgroud)
当然,这个 StatefulSet 控制器中有一个 init 容器,它将 vm.max_map_count 设置为 262144
更重要的是,这个初始化容器似乎成功完成:
kubectl descrive pod elastic-data-0
Init Containers:
init-sysctl:
Container ID: docker://23d3b3d11198510aa01aef340b92e1603785804fbf75e963fdbd61acfe458318
Image: busybox:latest
Image ID: docker-pullable://busybox@sha256:5e8e0509e829bb8f990249135a36e81a3ecbe94294e7a185cc14616e5fad96bd
Port: <none>
Command:
sysctl
-w
vm.max_map_count=262144
State: Terminated
Reason: Completed
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: elastic-data
labels:
component: elasticsearch
role: data
spec:
serviceName: elasticsearch-data
updateStrategy:
type: RollingUpdate
replicas: 3
template:
metadata:
labels:
component: elasticsearch …Run Code Online (Sandbox Code Playgroud) 我正在运行一个权威服务器,在 BIND 9.11.3 上为不在我网络中的主机禁用递归。当从我网络外的主机查询不在服务器权限下的域时,我没有得到答案,并且在权限部分得到了根服务器列表。我明白为什么会发生这种情况,我想知道是否可以完全禁用权限部分。当递归不可用时,是否有类似于最小响应的选项不会返回任何权限数据?
示例挖掘:
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> @NS google.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6847
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 13, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: 5ed7760df1d65f05baba487c5b75a318b3065456b81ca133 (good)
;; QUESTION SECTION:
;google.com. IN A
;; AUTHORITY SECTION:
. 518400 IN NS D.ROOT-SERVERS.NET. …Run Code Online (Sandbox Code Playgroud)