小编dot*_*dot的帖子

apt-get 安装失败并出现错误“无法找到包”

我收到系统无法找到软件包 kamailio 的错误消息。

我浏览了该站点上的 repo,我可以看到有一个 kamailio 包,但它位于http://repo.pouf.org/raspbian/pool/main/k/ 文件夹下。

我还尝试将 sources.list 文件更改为:

deb http://repo.pouf.org/raspbian/dists/ wheezy main
Run Code Online (Sandbox Code Playgroud)

但这并没有解决问题。

apt package-management

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

如何从 DNS 查询中仅提取 IP 地址

我想知道如何从 DNS / dig 查询中仅提取 IP 地址。我正在运行的查询如下所示:

lab-1:/var/# dig +answer smtp.mydomain.net +short   
smtp.ggs.mydomain.net
10.11.11.11
Run Code Online (Sandbox Code Playgroud)

我希望能够只获得返回的 IP 地址。我目前正在使用 bash 管道和 awk 命令。但到目前为止,我尝试过的一切都没有奏效。

谢谢。

bash dns dig

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

bash 脚本:设置的参数值不正确

问题

我有一个接受几个不同(可选)命令行参数的脚本。对于一个特定的论点,我得到了“less”的值,但我不知道为什么。

重击代码

while getopts ":d:f:p:e:" o; do
  case "${o}" in
        d)
            SDOMAIN=${OPTARG}
            ;;
        f)
            FROM=${OPTARG}
            ;;
        p)
            PAGER=${OPTARG}
            ;; 
        e)
            DESTEXT=${OPTARG}
            ;;                       
        *)
            show_usage
            ;;          
    esac
done

source "./utils.sh"
test #test includes

echo "$SDOMAIN is the sdomain"
echo "$FROM is the from"
echo "$PAGER is the pager"
echo "$DESTEXT is the extension"

exit
Run Code Online (Sandbox Code Playgroud)

输出

当我运行我的脚本时,这是我看到的:

lab-1:/tmp/jj# bash mssp.sh -d testdomain.net         
Utils include worked!                                       
testdomain.net is the sdomain                                               
 is the from                                                                    
less is the pager                                                               
 is the extension                                 
Run Code Online (Sandbox Code Playgroud)

我不明白为什么我在寻呼机中得到“更少”的价值。我希望看到空字符串。如果你能看到我的错误,请告诉我。我已经看这个太久了。

bash getopts variable

4
推荐指数
1
解决办法
317
查看次数

busybox shell 脚本 - 未知操作数错误消息

我需要编写一个小的shell脚本来执行python脚本并获得结果。

当我尝试以这种方式运行它时,它可以工作:

#!/bin/sh
/usr/bin/python /etc/scripts/backup.py
result=$?

if [ $result -gt 0 ];
    then echo 'PROBLEM';
else
    echo 'OK';
fi
Run Code Online (Sandbox Code Playgroud)

但是如果我尝试这样做,它会失败:

#!/bin/sh
if [ $(/usr/bin/python /etc/scripts/backup.py) -gt 0 ];
    then echo 'PROBLEM';
else
    echo 'OK';
fi
Run Code Online (Sandbox Code Playgroud)

它返回:

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: 0: unknown operand
OK
Run Code Online (Sandbox Code Playgroud)

结果是错误的。它应该打印“PROBLEM””而不是“OK”。

到目前为止我尝试过的

if [ $(/usr/bin/python /etc/scripts/backup.py) -ne 0 ];
Run Code Online (Sandbox Code Playgroud)

返回

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: 0: unknown operand
OK
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

if [ "$(/usr/bin/python /etc/scripts/backup.py)" -gt 0 ];
Run Code Online (Sandbox Code Playgroud)

它返回:

lab-1:/etc/scripts# ./audit_test_wrapper.sh
sh: out of range
OK
Run Code Online (Sandbox Code Playgroud)

有人可以指出我正确的方向吗?

谢谢。

scripting python shell-script busybox

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

如何在bash中仅提取文件名的特定部分

我有以下文件列表:

lab-1:/tmp/tmp.NMFaDO# ls                                                                                              
webserver.123.net.1970-01-01.csv          webserver.123.net.2016-10-01.csv          webserver.123.net.2017-10-01.csv                
webserver.123.net.2015-11-01.csv          webserver.123.net.2016-11-01.csv          webserver.123.net.2017-11-01.csv                
webserver.123.net.2015-12-01.csv          webserver.123.net.2016-12-01.csv          webserver.123.net.2017-12-01.csv                
webserver.123.net.2016-01-01.csv          webserver.123.net.2017-01-01.csv          webserver.123.net.2018-01-01.csv                
webserver.123.net.2016-02-01.csv          webserver.123.net.2017-02-01.csv          webserver.123.net.2018-02-01.csv                
webserver.123.net.2016-03-01.csv          webserver.123.net.2017-03-01.csv          webserver.123.net.current.csv                   
webserver.123.net.2016-04-01.csv          webserver.123.net.2017-04-01.csv          webserver.123.net.db.done                       
webserver.123.net.2016-05-01.csv          webserver.123.net.2017-05-01.csv          webserver.123.net.records_to_delete.txt         
webserver.123.net.2016-06-01.csv          webserver.123.net.2017-06-01.csv          sip2.ci2.lab.jwm2.net.2018-02-01.csv               
webserver.123.net.2016-07-01.csv          webserver.123.net.2017-07-01.csv          sip2.ci2.lab.jwm2.net.db.done                      
webserver.123.net.2016-08-01.csv          webserver.123.net.2017-08-01.csv          sip2.ci2.lab.jwm2.net.records_to_delete.txt        
webserver.123.net.2016-09-01.csv          webserver.123.net.2017-09-01.csv                                                             
Run Code Online (Sandbox Code Playgroud)

在 bash 脚本中,我需要遍历此列表并仅提取文件名的日期部分。我设法弄清楚如何从
包含使用此命令的文件的文件夹中执行此操作:

lab-1:/tmp/tmp.NMFaDO# ls webserver.123.net*.csv | sed 's/webserver.123.net.\(.*\)\.csv/\1/'                     
1970-01-01                                                                                                                                   
2015-11-01                                                                                                                                   
2015-12-01                                                                                                                                   
2016-01-01                                                                                                                                   
2016-02-01                                                                                                                                   
2016-03-01                                                                                                                                   
2016-04-01                                                                                                                                   
2016-05-01                                                                                                                                   
2016-06-01                                                                                                                                   
2016-07-01                                                                                                                                   
2016-08-01                                                                                                                                   
2016-09-01                                                                                                                                   
2016-10-01                                                                                                                                   
2016-11-01                                                                                                                                   
2016-12-01                                                                                                                                   
2017-01-01                                                                                                                                   
2017-02-01                                                                                                                                   
2017-03-01                                                                                                                                   
2017-04-01                                                                                                                                   
2017-05-01                                                                                                                                   
2017-06-01                                                                                                                                   
2017-07-01                                                                                                                                   
2017-08-01                                                                                                                                   
2017-09-01                                                                                                                         
2017-10-01                    
2017-11-01                   
2017-12-01               
2018-01-01              
2018-02-01  
current
Run Code Online (Sandbox Code Playgroud)

但我似乎无法让逻辑在我的 bash …

bash shell-script

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

sqlite3 命令行 - 如何一步设置模式和导入

我需要能够通过命令行一步完成此操作:

lab-1:/etc/scripts# sqlite3 test.db
SQLite version 3.8.10.2 2015-05-20 18:17:19
Enter ".help" for usage hints.
sqlite> .mode csv ;
sqlite> .import /tmp/test.csv users
sqlite> select * from users;
John,Doe,au,0,"",1,5555,91647fs59222,audio
sqlite> .quit
Run Code Online (Sandbox Code Playgroud)

我尝试了以下方法:

 lab-1:/etc/scripts# sqlite3 test.db ".mode csv ; .import /tmp/deleteme.csv users"
Run Code Online (Sandbox Code Playgroud)

 lab-1:/etc/scripts# sqlite3 test.db ".mode csv .import /tmp/deleteme.csv users"
Run Code Online (Sandbox Code Playgroud)

我没有收到错误,但我也没有在用户表中得到任何数据。

任何提示将不胜感激。

command-line csv sqlite

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

如何使用bash将两个数字相加

我有以下文件:

lab1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt                                
   344 server1                                                                            
     1 server2
Run Code Online (Sandbox Code Playgroud)

我希望能够将每一行的数字相加 - 所以在这种情况下,我想添加 344 + 1 并最终得到 345。

到目前为止,我已经弄清楚了以下步骤:

lab-1:/etc/scripts# cat /tmp/tmp.PGikhA/audit.txt |awk '{print $1}'              
344                                                                                                    
1                     
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将它们加在一起。我知道我可以只使用 $a + $b 语法,但是如何将 344 和 1 放入单独的变量中来做到这一点?

谢谢。

编辑 1

我得到了两个返回的值,而不仅仅是一个。看不出我做错了什么:

lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt | awk '{print $1}' | awk '{ sum+=$1} {print      
sum}'                                                                                                                    
344                                                                                                                      
345                                                                                                                      
lab-1:/etc/scripts# cat /tmp/tmp.jcbiih/audit.txt  | awk '{ sum+=$1} {print sum}'                  
344                                                                                                                      
345                                                                                                                      
Run Code Online (Sandbox Code Playgroud)

bash shell-script

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