小编spu*_*der的帖子

RPM 安装后脚本位于何处?

我在提供给我的 RPM 中发现了一个错误。

rpm -qp --scripts foo.rpm > /tmp/badscript

cat /tmp/badscript
postinstall scriptlet (using /bin/sh):
...
if [ 'some bug' == true ]....
Run Code Online (Sandbox Code Playgroud)

我可以访问源代码和规范文件,但我无法找到哪个文件是安装后 scriptlet。

我可以修复这个错误吗?如果是这样,我在哪里可以找到脚本?

我以为它会在 buildutils/rpmbuild/SPEC 中,但是当我 grep 整个源代码时,我找不到包含错误的字符串。

rpm shell-script

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

如何安全地允许 scp,但不允许 ssh

我使用 Mac Book Pro(称为 foo)工作。我有一个服务器,我的客户将大文件 scp 到其中。(称为酒吧)。我经常 ssh 进入 bar,然后将一个文件(称为 buzz)scp 到我的 Mac。

bob@foo$ ssh bar  
Last login: Fri Aug 23 14:49:32 2013 from foo  
bob@bar$ scp /guest/buzz bob@foo:~
Password: 
Run Code Online (Sandbox Code Playgroud)

我不想每次将文件 scp 传送回 Mac 时都输入密码,因为我最终会自动执行此操作。
我知道我可以设置 ssh 密钥,但我担心如果有人破解bar他们可以轻松访问foo. (如果我错了纠正我)

有没有办法在没有密码的情况下将文件从 bar 复制到 foo,如果服务器受到威胁,它不会让某人完全访问我的 Mac?

注:我想建立在我的Mac新用户,并禁止该用户shell访问力量的工作,但我觉得有一个更好的办法。如果可能,我宁愿不添加用户。

bash ssh scp

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

您将如何使用 cpio 命令?

在学习 lpic 考试时,我遇到了命令cpio.

cpio 的描述指出:

cpio 最初旨在以连续、连续的方式将备份文件存档存储在磁带设备上。cpio 不压缩任何内容,但生成的存档通常使用 gzip 或其他外部压缩器进行压缩。

在查看如何使用 cpio 的示例时,我找不到 cpio 比更常见的工具(如tar.

什么是使用cpio将被使用的示例(除了磁带备份),或者它在今天的系统中不再相关?

cpio

7
推荐指数
1
解决办法
3102
查看次数

rm -f 以数字开头的文件

我不小心将 CSV 文件的输出重定向到我的目录。如何rm只保留以数字开头的文件,而保留以字母开头的文件完整无缺?

mymachine$ ls
71.24         README.md        30            4.29
8             filter.sh        42.81         5.58         
8.36          purchases.csv    1,208.8       100          
16.7          2.56             21.78         269.96        
Run Code Online (Sandbox Code Playgroud)

rm

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

如何添加awk的每个输出

您将如何对 awk 的每一行的输出执行加法?

例如

cat foo | awk '{print $1}
42
42
42
Run Code Online (Sandbox Code Playgroud)

我正在寻找 42+42+42 (126) 的答案。

我正在尝试编写一个 for 循环来执行此操作,但必须有一种更简单的方法

#Not Working, and way too complex
cat foo |awk  '{ print $1 }'|for i in $1 do; foo=$(( foo+$(i) )) done| echo $foo
Run Code Online (Sandbox Code Playgroud)

我可以用管道传输,wc -l但它只打印行数,它不评估它们。

如何从 awk 评估每一行?

awk

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

为什么要限制用户可以访问的 inode 数量?

似乎可以在网络安装上设置用户可以消耗多少空间的配额。

# edquota ramesh

Disk quotas for user ramesh (uid 500):
  Filesystem           blocks       soft       hard     inodes     soft     hard
  /dev/sda3           1419352          0          0       1686        0        0
Run Code Online (Sandbox Code Playgroud)

您还可以对用户拥有的 inode 数量设置软限制和硬限制。

为什么您需要限制用户可以访问的 inode 数量?

用户是否仍然能够用 1 个非常大的文件填满磁盘?

nfs inode quota

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

为什么这个过程不会在 SIGTERM 之后消亡

我有一个似乎挂起的进程。

当我尝试重新启动该过程时,出现超时。

service logstash_server stop
timeout: run: logstash_server: (pid 11797) 839061s, want down, got TERM
Run Code Online (Sandbox Code Playgroud)

我试过tail -f在日志上运行 a ,不幸的是没有显示任何内容。我也在kill -15这个过程中尝试了一个,但它仍然挂起。Top 不会将此显示为僵尸进程。

我想弄清楚“为什么”这个过程处于这种状态,因为这是过去一个月中第三次发生这种情况。

我检查了文件描述符和系统日志,但没有看到任何明显的东西。

文件描述符 => http://pastebin.com/90rDHhT4
系统日志输出 => http://pastebin.com/xBaMaL9Z

lsof | grep logstash=> http://pastebin.com/gsSdPyg5 的输出

我尝试在进程上运行 strace,它只显示 FUTEX_WAIT

strace -p 11797
Process 11797 attached
futex(0x7f6d95d8e9d0, FUTEX_WAIT, 11811, NULL
Run Code Online (Sandbox Code Playgroud)

在我发出之前还有什么我可以做的kill -9吗?

更新

与开发商开票。问题大约每周持续一次。

https://github.com/elastic/logstash/issues/2992

kill

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

如何将 bash 算法与命令输出结合起来?

假设你有两个命令:

第一条命令

let foo=2+2
echo $foo
4
Run Code Online (Sandbox Code Playgroud)

第二个命令

date "%s"
1377107324
Run Code Online (Sandbox Code Playgroud)

你会如何组合它们?


尝试 1。

echo The epoch time is: `date +%s` in 100 seconds the time \
     will be: `let future={date +%s}+100` $future
Run Code Online (Sandbox Code Playgroud)

尝试2。

echo The epoch time is: `date +%s` in 100 seconds the time \
     will be: `let future=(date +%s)+100` $future
Run Code Online (Sandbox Code Playgroud)

加上大约 30 次其他类似的尝试

bash date

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

Sed / Awk - 查找恰好 n 个字符长的字符串

查看 sed、awk 和 grep 的手册页,我无法找到一种方法来搜索正好为 n 个字符长的字符串。

鉴于以下文本文件,我只想提取 6982a9948422

ID                  IMAGE               COMMAND                
CREATED             STATUS              PORTS
6982a9948422        ubuntu:12.04        apt-get install ping   
1 minute ago        Exit 0
Run Code Online (Sandbox Code Playgroud)

该值将始终位于第一列中,并且始终为 12 个字母数字字符。

这是我目前正在尝试的。

 cat /tmp/test | awk {'print $1'} | sed 's/.*\([0-9],[A-Z],[a-z]\{12\}\).*//g'
Run Code Online (Sandbox Code Playgroud)

仅从6982a9948422上面的文本中提取的方法是什么?

grep sed awk

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

运行 make 时指定 PREFIX 位置

我需要将 redis 2.8.x 安装到特定目录中,以便以后可以使用fpm创建 rpm。

从我的研究来看,这似乎应该可以通过使用 make PREFIX=

mkdir /tmp/installdir
cd /tmp
wget http://download.redis.io/releases/redis-2.8.6.tar.gz
tar -xvf redis-*.tar.gz
cd redis-2.8.6
make PREFIX=/tmp/installdir
make install
Run Code Online (Sandbox Code Playgroud)

我希望将二进制文件放在 /tmp/installdir 中,不幸的是该目录仍然是空的。似乎PREFIX=/tmp/installdir被忽视了。

通常我会运行./configure --prefix=/tmp/installdir但是因为下载不包含源代码,没有configure文件。

如何将软件安装到非标准目录?

compiling rpm software-installation

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

标签 统计

awk ×2

bash ×2

rpm ×2

compiling ×1

cpio ×1

date ×1

grep ×1

inode ×1

kill ×1

nfs ×1

quota ×1

rm ×1

scp ×1

sed ×1

shell-script ×1

software-installation ×1

ssh ×1