скрыть старые библиотеки из системы linux без root-доступа

Предложение:

#!/bin/bash

# Location where bash scripts are located.
phy_ssh=/opt/wiki_scripts/servers.sh 

# Hosts where we will ssh into.
Phy_Hosts=( vmfarm1 p12 barclay maximus backupfirefly accountant 10.6.6.90 )

SendFiles () {
        local host="$1"
        ssh "root@$host" 'bash -s' <"$phy_ssh"
        ssh "root@$host" cat /root/phy_machines.txt
}

# backup databases
for host in "${Phy_Hosts[@]}"; do
        SendFiles "$host"
done >/opt/wiki_scripts/phy_machines.txt
  • Зацикливание может выполняться непосредственно над массивом, нет необходимости использовать индексирование.
  • Вы никогда не использовали переменную hostв функции.
  • Общая очистка -, включая удаление неиспользуемой переменной vm_ssh, двойные кавычки расширений переменных и удаление ненужных exit 0в конце.
  • Перенаправление вывода перемещено из функции в цикл for. В этом может не быть необходимости, или это действительно может быть неправильно, если вы ожидаете, что первый вызов sshв функции что-то выведет, но это сделает функцию чище.

После нескольких итераций комментариев:

Определяйте функцию SendFilesтолько один раз, (более поздние ее определения переопределяют более ранние ). Пусть он возьмет всю информацию, необходимую для запуска для любого конкретного набора хостов.

#!/bin/bash

# Location where bash scripts are located.
phy_ssh=/opt/wiki_scripts/servers.sh
vm_ssh=/opt/wiki_scripts/virtualservers.sh
others_ssh=/opt/wiki_scripts/others.sh

# Hosts where we will ssh into.
Phy_Hosts=( vmfarm1 p12 barclay maximus backupfirefly accountant 10.6.6.90 )
Vm_Hosts=( icinga.stacc.ee ldap.stacc.ee mail.stacc.ee openvpn.stacc.ee dns.stacc.ee redmine.stacc.ee owncloud.stacc.ee www.stacc.ee git.stacc.ee )
SomeOther_list ( more machines )

SendFiles () {
        local host="$1"
        local script="$2"
        local remotefile="$3"

        ssh "root@$host" 'bash -s' <"$script"
        ssh "root@$host" cat "$remotefile"
}

# backup databases
for host in "${Phy_Hosts[@]}"; do
        SendFiles "$host" "$phy_ssh" /root/phy_machines.txt
done >/opt/wiki_scripts/phy_machines.txt

for host in "${Vm_Hosts[@]}"; do
        SendFiles "$host" "$vm_ssh" /root/vm_machines.txt
done >/opt/wiki_scripts/vm_machines.txt

# and then, for example
for host in "${SomeOther_list[@]}"; do
        SendFiles "$host" "$others_ssh" /root/other_machines.txt
done >/opt/wiki_scripts/other_machines.txt
2
31.10.2019, 13:12
1 ответ

Пробовали ли вы изменить библиотечные маршруты по умолчанию?

В зависимости от вашей версии это может быть в:

ld.so.conf или в ld.so.conf.d/libc.conf

Второй — только для libc , а первый — для глобальной конфигурации, где вы указываете маршруты для библиотек.

0
27.01.2020, 22:24

Теги

Похожие вопросы