我想使用我的一个GPS(2)子键在Git Ie中签名提交/标签,这是我新创建的RSA4096仅签名密钥,ID为长#B0 ## ...
sec# ed25519/9F############## 2016-01-07 [expires: 2023-01-05]
Key fingerprint = FC08 HEX HEX HEX
uid [ultimate] MY NAME <MY.NAME@foo bar>
ssb rsa4096/C9############## 2016-01-07 [expires: 2022-01-05]
ssb ed25519/C6############## 2016-01-07 [expires: 2022-01-05]
ssb rsa4096/B0############## 2016-01-13 [expires: 2022-01-11]
Run Code Online (Sandbox Code Playgroud)
我正在处理一个密钥环,其中主密钥已被删除(备份)作为"更好的密钥策略"
所以,我试着为Git设置签名密钥
[user]
...
signingkey = B0##############
Run Code Online (Sandbox Code Playgroud)
但是,提交和签名失败了
> git commit -S -m "test commit"
gpg: skipped "B0##############": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)
gpg-agent启动并运行的地方. …
作为一个木偶新手,我有一个问题,包括stdlib插件
我想使用stdlib的file_line,因此我尝试包含stdlib并调用它
class service_mon
{
include stdlib
file_line
{
"${name}_services": path=> ...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到一条错误消息,表示无法找到stdlib
错误:无法从远程服务器检索目录:SERVER上的错误400:在/etc/puppet/workspace/dev/src/modules/mymanifest/manifests/deploy.pp:87上找不到my.node.name的类stdlib node my.node.name
这让我很奇怪,因为应该安装stdlib(?)......或?
puppet module install puppetlabs-stdli
puppet module list
/etc/puppet/modules
??? puppetlabs-stdlib (v4.2.2)
/usr/share/puppet/modules (no modules installed)
puppet config print modulepath
/etc/puppet/modules:/usr/share/puppet/modules
Run Code Online (Sandbox Code Playgroud)
所以,我猜原则上所有必要的文件都是'那里',但我怎么能说服Puppet包含stdlib呢?
我有一个文件列表,想对它们的文件大小求和。因此,我创建了一个(全局)变量作为计数器,并尝试循环该列表,使用 ls 获取文件大小,然后使用
export COUNTER=1
for x in $(cat ./myfiles.lst); do ls -all $x | awk '{COUNTER+=$5}'; done
Run Code Online (Sandbox Code Playgroud)
然而我的柜台是空的?
> echo $COUNTER
> 1
Run Code Online (Sandbox Code Playgroud)
有人对我的想法有什么想法吗?我在这里缺少什么?
干杯和感谢,托马斯
好的,我找到了一种将 awk 管道的结果传输到变量中的方法(这可能不优雅,但有效;))
for x in $(cat ./myfiles.lst); do a=$(ls -all $x |awk '{print $5}'); COUNTER=$(($COUNTER+$a)) ; done
> echo $COUNTER
> 4793061514
Run Code Online (Sandbox Code Playgroud) 玩木偶,我最终在一个嵌套字典/哈希 - 看起来或多或少像
$settings =
{
"var1" =>
{
"ip" => "0.0.0.0",
"port" => "1234",
"option" => ["foo", "bar"],
"machines" =>
{
"maschine-1" => { "ip" => "1.2.3.4", "port" => "1234"},
"maschine-2" => { "ip" => "1.2.3.5", "port" => "1235"},
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我还没有设法在对应的erb模板中正确解析它.
<% @settings.each_pair do |settings_key, settings_value_hash| %>
<%= settings_value_hash['ip']%>:<%= settings_value_hash['port'] %>
option <% @settings_value_hash['option'].each do |option| -%> <%= option %> <% end -%>
<% @{settings_value_hash['machines']}.each_pair do |machine_key, machine_value_hash| %>
server <%= machine_key %> <%= machine_value_hash['ip'] %>:<%= machine_value_hash['port'] …Run Code Online (Sandbox Code Playgroud) 我有一个不同类型的字典,我想根据实际参数的名称添加一个简单的getter,例如,对于三个存储参数,我想说
self.storage = {'total':100,'used':88,'free':1}
Run Code Online (Sandbox Code Playgroud)
我现在正在寻找一种方法(如果可能的话?)用一些元编程魔法动态生成一个函数???
代替
class spaceObj(object):
def getSize(what='total'):
return storage[what]
Run Code Online (Sandbox Code Playgroud)
或硬编码
@property
def getSizeTotal():
return storage['total']
Run Code Online (Sandbox Code Playgroud)
但
class spaceObj(object):
# manipulting the object's index and magic
@property
def getSize:
return ???
Run Code Online (Sandbox Code Playgroud)
所以调用mySpaceObj.getSizeFree会被调用 - getSize只在对象中定义一次,并通过操作对象函数列表从它派生的相关函数?
这样的事情可能......?
我正在 Linux/Fedora 下使用扩展文件属性,目前我遇到了一些困难,因为我无法添加/更改文件的属性,而在/tmp我家里它工作正常 - 虽然两个路径都在同一个挂载点上,即,
/dev/mapper/fedora-root on / type ext4 (rw,relatime,seclabel,data=ordered)
Run Code Online (Sandbox Code Playgroud)
例如,我可以成功添加和检索主目录中文件的属性,例如
> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 ~/foo.bar
> getfattr -n user.test.md5 ~/foo.bar
# file: foo.bar
user.test.md5="58d8e4cd0e60facf386838cbe8b11767"
Run Code Online (Sandbox Code Playgroud)
但是,对于 中的同一文件,同样会失败/tmp。
> cp ~/foo.bar /tmp/foo.bar
> setfattr -n user.test.md5 -v 58d8e4cd0e60facf386838cbe8b11767 /tmp/foo.bar
setfattr: /tmp/foo.bar: Operation not supported
Run Code Online (Sandbox Code Playgroud)
我假设,对扩展属性的支持仅取决于使用 xattr 支持“正确”安装的文件系统。但是,它似乎也依赖于目录(??),我想知道,是什么阻止我在 /tmp 中设置扩展属性以及如何更改它?(这似乎与 SELinux 无关——至少我在审核日志中没有找到任何内容。)
我正在尝试以更可解析的方式格式化 lsof 输出。
背景:由于并非所有打开句柄的进程都有线程 ID,因此不一定确定由空格(空白 AFAIS)分隔的字段数量。
作为输出字段,我需要 PID、UID/用户名和路径(如果它是一个文件 - 我正在查找路径,因为 +D 非常慢)。
作为字段分隔符,我从 NL 切换到 NUL(并用“|”替换 null 以提高可读性)
所以我尝试了
> /usr/sbin/lsof -F pnuf0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
ftxt|n/usr/bin/cvmfs2|
fmem|n/usr/lib64/libcvmfs_fuse.so.2.3.5|
Run Code Online (Sandbox Code Playgroud)
它只产生文件描述符和名称(不是按照给定的顺序?)而不是 PID 或 UID?
作为旁注,单独选择 PID 和 UID 字段时,它们显然已经是“空”
> /usr/sbin/lsof -F u0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
> /usr/sbin/lsof -F p0 | sed 's/\x0/|/g' | grep "cvmfs" | tail -n 2
> /usr/sbin/lsof -F n0 | sed 's/\x0/|/g' | …Run Code Online (Sandbox Code Playgroud)