Articles of bash

采用pid并recursion地输出命令名和networking连接的脚本

需要一些帮助。 对于命令名称,我可以使用ps aux和grep命令名称? netstat –inet -ap显示networking连接,但我怎么去只获取一个特定的pidnetworking连接recursion?

仅显示来自hdparm命令的数字

我只需要从hdparm输出中获得我的MIB的数字结果。 例。 我得到有关我的设备的hdparm信息。 hdparm -t /dev/sda1 /dev/sda1: Timing buffered disk reads: 220 MB in 3.02 seconds = 72.88 MB/sec 如何从这个命令只得到72.88 。 我需要这个我的bash脚本和SNMP监控?

避免bash脚本等待用户input回车键

我在bash脚本中input了以下内容。 echo "Please see attached file" | mailx -S smtp=$smtpServer -s "Subject of the mail" -a $logfile -r "[email protected]" [email protected] [email protected] 它的工作正常,如果没有错误发送邮件。 但有时如果出现错误,mailx将显示错误信息并等待用户input回车键(回车)。 我想避免这一点。 它不应该等待用户input回车键。 如何在bash脚本中做到这一点?

值应该是Zabbix中的JSON对象错误

我有以下脚本: – #!/bin/bash echo "{" echo "\"data\":[" grep -hoR server_name.* /etc/nginx/sites-enabled/|sed 's/[^ ]* //'|sed 's/.$//'|awk -F"/" '{ print "{\"{#URL}\":\""$1"\"}," }'| head -c -2 echo "]" echo "}" 这被设置为客户端上的UserParameter UserParameter=url.discovery[*],/etc/zabbix/scripts/urls.sh 并给出了如下结果 { "data":[ {"{#URL}":"example.com"}] } 然后我有一个在zabbix中configuration的发现规则,如下所示: – 关键是url.discovery [*] 项目原型是web.page.regexp [{#URL} ,,,testing,,] 但是,我得到以下错误 值应该是JSON对象错误 我已经检查了https://jsonlint.com/上的JSON结果,并说它是有效的。 我该如何解决这个问题? 谢谢Stuart

如何轻松地将环境variables传递给“在Windows 10上的Bash”中的.exe文件?

我正在寻找一种方法,当从Windows 10terminal上的Bash调用时,轻松地将环境variables传递给.exe。 看起来 TEST=somevalue example.exe 不起作用。

用bash脚本中的doveadmvalidationSHA-512散列pw导致“net_connect_unix … permission denied”

我正在尝试使用以下代码validationSHA-512哈希密码: #!/bin/bash … pw_verified=$(/usr/bin/doveadm pw -p 'test' -t '{SHA512-CRYPT}$6$rounds=999999$somehash') … bash脚本具有以下权限: -rwxr-xr– 1 root dovecot 5793 Jul 25 16:13 checkpassword.sh 执行脚本后,我在syslog中得到以下内容: dovecot: doveadm: Fatal: Error reading configuration: net_connect_unix(/var/run/dovecot/config) failed: Permission denied ###(btw: is it possible to get a more detailed log on this like eg: "Permission denied (euid=65534(nobody) egid=65534(nogroup) missing +r perm: /run/dovecot/auth-worker, dir owned […]

限制SSH密钥运行一个特定的脚本和scp一个特定的文件

我有两台机器:main和dev。 在开发我有Git仓库和脚本/root/create-git-package.sh创build一个/root/package.tgz。 我想通过ssh密钥从主机到开发机器来限制login,只允许运行create-git-package.sh并运行scp package.tgz(在主机上运行scp,而不是dev) 我怎样才能做到这一点? PS。 对不起我的英语不好。

如何通过SSH(使用Putty)login到RHEL时将文件导出到其他用户的bash?

我正在运行RHEL 7.3,但是在其他Linux系统上的过程可能相似。 我已经以root身份login。 我有一个名为openrc的文件,它充满了像export OS_IDENTITY_API_VERSION=3这样的行。 我想将此文件移动到某个位置,以便在其他用户使用SSHlogin时自动加载该文件。 读过相关的线程后,我尝试使用这个作为root用户添加这个,但是这似乎只是为root用户添加这些值。 当我作为另一个用户login时,说'admin01'值不会被加载。 echo source /home/admin01/openrc>>~/.bash_profile 我也尝试将这个文件移动到/etc/profile.d,但是这似乎也只加载了根,而不是任何其他用户login。有人请解释发生了什么事。 cp /home/admin01/openrc /etc/profile.d/openrc.sh /etc/profile有这样的警告; # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this […]

Google云(GKE)Kubernetes Docker容器中的文件权限错误

我尝试在我的Docker容器中运行初始化脚本,该容器使用Google Cloud Container Engine(GKE)上的Kubernetes kubectl命令进行部署。 该脚本在我的本地系统上的docker容器中没有错误地执行,但似乎不能在GKE上工作。 我正在使用root帐户在GKE上执行脚本。 Dockerfile环境variables设置为: ENV SUEXECUSERGROUP false shell脚本的path映射到外部持久磁盘。 我已经这样做了,所以我不需要在shell脚本中对任何path进行硬编码: / path-to-shell-script /被映射到〜/父文件夹 docker入口点是: / usr / local / bin / docker-entrypoint.sh shell脚本位于: shell脚本/ path-to-shell-script /fix.sh 加载容器时(初始化)我收到以下错误: ./fix.sh:权限被拒绝 当我从容器内运行ls -lad / path-to-shell-script /时 ,我得到以下输出: drwxr-sr-x 19 apache apache 4096 / path-to-shell-script / ls -la / path-to-shell-script /还显示: … -rwxrwxr-x 1 root root […]

Windows 10 Bash AWS问题ENETUNREACH 169.254.169.254:80

我目前正在使用Windows Bash并尝试使用AWS CLI,即当我尝试运行一个lamba如下claudia。 claudia test-lambda 但我一直在遇到以下问题: Error: connect ENETUNREACH 169.254.169.254:80 – Local (0.0.0.0:53836) at Object.exports._errnoException (util.js:1050:11) at exports._exceptionWithHostPort (util.js:1073:20) at internalConnect (net.js:889:16) at lookupAndConnect (net.js:977:5) at Socket.realConnect (net.js:945:5) at Agent.connect [as createConnection] (net.js:77:22) at Agent.createSocket (_http_agent.js:195:26) at Agent.addRequest (_http_agent.js:157:10) at new ClientRequest (_http_client.js:212:16) at Object.request (http.js:26:10) 如果我在Windows上尝试相同的命令commpand提示它的作品。