AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-473781

markfree's questions

Martin Hope
markfree
Asked: 2022-11-08 15:55:28 +0800 CST

绑定错误重定向失败 - 挖掘

  • 6

我正在尝试针对域名测试一些名称服务器。为此,我创建了一个脚本来读取名称服务器列表并请求域名。

像这样基本的东西:

#!/bin/bash

domain=$1
[ -z $domain ] && read -p "DOMAIN NAME: " domain

namefile="./nameserver"

echo "RESULT -  NAMESERVER              DOMAIN                  IP"

for host in $(cat "$namefile"); do
        IPADD=$(dig +short "$host" "$domain" A 2> /dev/null)

        [[ ! -z $IPADD ]] && result="OK" || result="FAIL"

        echo "$result   - Nameserver: $host     - Domain: $domain       - IP answer: $IPADD"
done

我遇到的问题是,当Dig失败时,它不会将错误重定向到null. 因此,$IPADD变量接收到错误的值。

# CORRECT nameserver
# dig +short @8.8.8.8 google.com A 2> /dev/null
142.250.218.206

# WRONG nameserver
# dig +short @8.8.8.80 google.com A 2> /dev/null
;; connection timed out; no servers could be reached

如果我使用错误的名称服务器地址对其进行测试,我仍然会收到一条错误消息,如上所示。

据我了解,重定向到 时null,它不应显示该错误消息。

任何想法?

谢谢你。

io-redirection
  • 1 个回答
  • 33 Views
Martin Hope
markfree
Asked: 2022-10-28 06:03:53 +0800 CST

Ansible - 将授权密钥推送到具有不同密码的多个主机组

  • 6

我想使用 Ansible 将新用户的公钥推送到主机清单。为此,创建了一个剧本,如下例所示。

---
- name: vms1 - Authorize hosts with pub key
  hosts: vms1
  tasks:
    - name: Copy ssh pub key to remote host
      ansible.posix.authorized_key:
        user: user1
        state: present
        key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"

- name: vms2 - Authorize hosts with pub key
  hosts: vms2
  tasks:
    - name: Copy ssh pub key to remote host
      ansible.posix.authorized_key:
        user: user2
        state: present
        key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"

- name: vms3 - Authorize hosts with pub key
  hosts: vms3
  tasks:
    - name: Copy ssh pub key to remote host
      ansible.posix.authorized_key:
        user: user3
        state: present
        key: "{{ lookup('file', '/home/controluser/.ssh/id_rsa.pub') }}"

库存是这样的。(有更多的主机)

[vms1]
192.168.7.211
192.168.7.212
192.168.7.213

[vms2]
192.168.7.21
192.168.7.22
192.168.7.23

[vms3]
192.168.7.111
192.168.7.112
192.168.7.113

每个游戏都有自己的主机组和自己的用户。可以使用以下命令启动 playbook。

ansible-playbook -k -i inventory playbook.yml

使用-k选项时,它只询问一次 SSH 密码。我遇到的问题是每个组的密码都不同。因此,我想为每个游戏输入密码。

每次播放都需要密码吗?

ansible
  • 1 个回答
  • 26 Views
Martin Hope
markfree
Asked: 2022-02-03 17:35:02 +0800 CST

将字符串时间转换为秒

  • 1

我收到这种格式的正常运行时间:

167h58m10.586582048s

我想将其转换为秒并丢弃分数部分。我知道awk如果只有接收到的字符串具有相同的分隔符,就可以做到这一点。事实并非如此。

我怎么能把它转换成秒?

date time
  • 1 个回答
  • 220 Views
Martin Hope
markfree
Asked: 2021-12-17 05:41:28 +0800 CST

自动SSH提示输入

  • 1

我正在尝试将一堆 RSA 密钥复制到特定用户的多个服务器。每当我发出ssh-copy-id命令时,它都会要求我输入“是”来确认,然后要求我输入密码。我想避免磨损我的手臂和手指,所以,我决定为这个任务创建一个脚本,如下所示:

#!/bin/bash
runuser -u $RMTUSER -- ssh-copy-id [email protected]
runuser -u $RMTUSER -- ssh-copy-id [email protected]
(...)
runuser -u $RMTUSER -- ssh-copy-id [email protected]
runuser -u $RMTUSER -- ssh-copy-id [email protected]

我似乎找不到自动化该任务的好方法。似乎没有任何效果。如何自动输入“是”和密码?


我意识到我最初的问题很乏味。对此我很抱歉……不过,它仍然在上面。

我已经将脚本改进为类似于 Marcus 提议的内容。我被困在“for”循环中,想知道如何为不同的服务器阵列传递该密码。

我的主机集都是静态的,还有更多。

#!/bin/bash

LOCUSER="$1"    # USER FOR REMOTE ACCESS
RMTUSER="$2"    # REMOTE USER
PASSWD="$3"     # SITE PASSWORD
SITE="$4"       # SERV SITE


function uras() {
        for IP in "$@"; do
                runuser -u "${LOCUSER}" -- sshpass "-p${PASSWD}" ssh-copy-id "${RMTUSER}@${IP}"
                [ "$?" -eq "0" ] && echo "OK - $IP" || echo "FAIL! - $IP"
        done
        }


case $SITE in
        "sa")
                ARRAY_A=( $(cat ./serv_a.txt) )
                uras "${ARRAY_A[@]}"
                ;;
        "sb")
                ARRAY_B=( $(cat ./serv_b.txt) )
                uras "${ARRAY_B[@]}"
                ;;
        "sc")
                ARRAY_C=( $(cat ./serv_c.txt) )
                uras "${ARRAY_C[@]}"
                ;;
        *)
                echo "INVALID SITE"
                ;;
esac

尽管如此,每个主机的脚本都失败了。

# ./auto_ssh_copy.sh [user] root [pass] [site]
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/zabbix/.ssh/id_rsa.pub"
FAIL! - 172.24.168.48
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/zabbix/.ssh/id_rsa.pub"
FAIL! - 172.24.168.49
/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/var/lib/zabbix/.ssh/id_rsa.pub"
FAIL! - 172.24.168.50
(...)

我也尝试使用“-f”,但结果是一样的。

我同意使用像 Ansible 这样强大的工具可能是完成这项工作的更好工具,但不幸的是,它目前在我的工作集中不可用。这是我到目前为止想出的。


最后,我设法复制了所有密钥。上面的脚本缺少 option -o StrictHostKeyChecking=no,因此sshpass返回退出代码 6。生成的命令是这样的:

runuser -u ${LOCUSER} -- sshpass -v -p${PASSWD} ssh-copy-id -o StrictHostKeyChecking=no ${RMTUSER}@${IP}

Marcus awnser 帮了大忙。谢谢大家。

ssh command
  • 3 个回答
  • 388 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve