Скрипт сбора информации с сервера.

Появилась необходимость сбора логов по расписанию  с виртуальных машин linux. Я наткнулся на подобное решение и немного видоизменил его. Как оно работает. С машины, которая имеет безпарольный доступ ко всем вм запускаться скрипт, который «стягивает» по scp файлы логов и складирует их в папку по ip.

#!/usr/bin/expect -f
#set timeout 100
#set PASS "1qazxdr5"
set USER "root"
set HOST "10.1.9.67"
spawn ssh $USER@$HOST;
#expect "password:"
#send "$PASS\r"
expect "#"
set DIR [exec hostname]
send "exit\r"
expect "#"
spawn mkdir /root/$HOST \r;
expect "#"
spawn scp -r $USER@$HOST:/var/log/* /root/$HOST;
#expect "password:"
#send "$PASS\r"
expect eof

Можно делать это также rsync.

#!/usr/bin/expect -f
spawn python send_message_begin.py
set timeout 300
set USER "root"
set HOST "10.1.9.2"
spawn ssh $USER@$HOST;
expect "#"
set DIR [exec hostname]
send "exit\r"
expect "#"
spawn mkdir /var/log/$HOST;
expect "#"
spawn rsync --progress -avzr -e ssh $USER@$HOST:/var/log/* /var/log/$HOST;
expect eof

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *