我收到系统无法找到软件包 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)
但这并没有解决问题。
我想知道如何从 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 命令。但到目前为止,我尝试过的一切都没有奏效。
谢谢。
问题
我有一个接受几个不同(可选)命令行参数的脚本。对于一个特定的论点,我得到了“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)
我不明白为什么我在寻呼机中得到“更少”的价值。我希望看到空字符串。如果你能看到我的错误,请告诉我。我已经看这个太久了。
我需要编写一个小的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)
有人可以指出我正确的方向吗?
谢谢。
我有以下文件列表:
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 …
我需要能够通过命令行一步完成此操作:
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)
我没有收到错误,但我也没有在用户表中得到任何数据。
任何提示将不胜感激。
我有以下文件:
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)