小编THX*_*THX的帖子

使用OpenPGP子项进行签名提交失败

我想使用我的一个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启动并运行的地方. …

git gnupg

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

Puppet:stdlib已安装但在命名空间中不可用?

作为一个木偶新手,我有一个问题,包括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呢?

namespaces std include puppet

5
推荐指数
1
解决办法
3821
查看次数

使用 awk 在文件列表上计算文件大小的总和

我有一个文件列表,想对它们的文件大小求和。因此,我创建了一个(全局)变量作为计数器,并尝试循环该列表,使用 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)

bash awk

3
推荐指数
2
解决办法
2万
查看次数

Puppet:嵌套的hash/dict,数组:如何在erb中访问?

玩木偶,我最终在一个嵌套字典/哈希 - 看起来或多或少像

$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)

ruby arrays dictionary erb puppet

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

Python:从字符串动态生成方法?

我有一个不同类型的字典,我想根据实际参数的名称添加一个简单的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只在对象中定义一次,并通过操作对象函数列表从它派生的相关函数?

这样的事情可能......?

python function object

2
推荐指数
1
解决办法
286
查看次数

xattr/扩展属性对于 /tmp 中的文件不可设置,而在同一安装上的 $home 中工作正常

我正在 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 无关——至少我在审核日志中没有找到任何内容。)

linux file-attributes tmpfs xattr

2
推荐指数
1
解决办法
3220
查看次数

将 lsof 输出格式化为可解析结构

我正在尝试以更可解析的方式格式化 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)

formatting lsof

2
推荐指数
1
解决办法
4690
查看次数