LINUX.ORG.RU

Помогите пожалуйста написать скрипт для автобэкапа. Я новичек в Linux

 ,


0

1

Всем привет. Помогите пожалуйста написать скрипт (буду рад если пошагово с объяснениями) для автобэкапа. Бэкап должен проходить каждые 30 минут с linux (виртуалка) на windows. IP linux 192.168.192.215, a IP Win 192.168.192.184 Путь куда нужен бэкап C:\Users\admin\test

Для создания скрипта автоматического бэкапа с Linux-сервера на Windows-компьютер, мы можем использовать SCP (Secure Copy Protocol) для копирования файлов с Linux на Windows. Для этого нужно убедиться, что на вашем Windows-компьютере установлен SSH-сервер или SCP-сервер.

Ниже приведен пример скрипта на Python, который будет выполнять бэкап каждые 30 минут с Linux-сервера на Windows-компьютер с использованием библиотеки paramiko для SSH-соединения. Прежде всего, убедитесь, что у вас установлена библиотека Paramiko на вашем Linux-сервере:

pip install paramiko

Теперь создайте Python-скрипт, например, backup_script.py, и добавьте в него следующий код:

import time
import paramiko
from scp import SCPClient

# Параметры SSH-соединения к Linux-серверу
linux_ip = "192.168.192.215"
linux_username = "your_username"  # Замените на ваше имя пользователя
linux_password = "your_password"  # Замените на ваш пароль
linux_backup_path = "/path/to/backup/source"  # Укажите путь к файлам для бэкапа на Linux

# Параметры SCP-соединения к Windows-компьютеру
windows_ip = "192.168.192.184"
windows_username = "your_username"  # Замените на ваше имя пользователя
windows_password = "your_password"  # Замените на ваш пароль
windows_backup_path = "C:/Users/admin/test"  # Укажите путь для сохранения бэкапов на Windows

# Функция для выполнения бэкапа
def perform_backup():
    try:
        # Установка SSH-соединения с Linux-сервером
        ssh_client = paramiko.SSHClient()
        ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        ssh_client.connect(linux_ip, username=linux_username, password=linux_password)

        # Копирование файлов с Linux на Windows
        with SCPClient(ssh_client.get_transport()) as scp:
            scp.put(linux_backup_path, remote_path=windows_backup_path, recursive=True)

        print("Backup completed successfully!")

    except Exception as e:
        print("Error:", str(e))

    finally:
        ssh_client.close()

if __name__ == "__main__":
    while True:
        perform_backup()  # Выполняем бэкап
        time.sleep(1800)  # Ждем 30 минут перед следующим бэкапом

Пожалуйста, замените значения your_username, your_password, «/path/to/backup/source» и C:/Users/admin/test на соответствующие значения вашей конфигурации.

Этот скрипт будет выполнять бэкап каждые 30 минут. Вы можете запустить его на вашем Linux-сервере и он будет копировать файлы с Linux на Windows.

evgeny_aa ★★☆
()
Ответ на: комментарий от t184256

Немного поправить и будет работать. Как ни крути, проблема тс решается языковой моделью и 30 минутами времени при условии, что он вообще не раздупляет, что делать, а умеет только задавать вопросы и выполнять инструкции.

evgeny_aa ★★☆
()

Что бекапить собрался? В общем случае scp/rsync/samba+tar+cron тебе помогут. писать код за тебя тут никто не будет.

linux (виртуалка)

бекапить средствами гипервизера не думал?

Kolins ★★★
()
Ответ на: комментарий от t184256

невесть какая проблема ТС будет решаться невесть как — с запуском неоттуда, без атомарности, консистентности, докачки…

С уровнем ТС это в любом случае будет так, если только не заплатит кому-то. И мне почему-то кажется, что ему большего и не требуется.

evgeny_aa ★★☆
()
Ответ на: комментарий от t184256

Мне то ты зачем это пишешь? Донеси до ТС (который сюда и не заходит), если не лень. Мне твои фантазии не интересны. Для меня очевидно, что эти усилия будут бесполезны.

evgeny_aa ★★☆
()
Ответ на: комментарий от evgeny_aa

Вы мне только тряпочку дайте, ох вы у меня попляшете по помытому.

Допустим, ворчу. Это как оправдывает твой постинг мусора?

t184256 ★★★★★
()
Последнее исправление: t184256 (всего исправлений: 1)
Ответ на: комментарий от t184256

тряпочку дайте

Тут есть уже один с тряпочкой, его достаточно.

Допустим, ворчу. Это как оправдывает твой постинг мусора?

Как-то так вышло, что этот мусор и содержательней и ближе к треду, чем всё остальное здесь. А твоего «ворчания» и 🤦 в каждой теме навалено столько, что тошнит натыкаться на него уже.

evgeny_aa ★★☆
()
Ответ на: комментарий от shTigrits

Конечно молчит. Это же домашнее задание! Вчера нужно было сделать, сегодня - сдать. Было это задание сделано или не было - ТСу оно уже в любом случае не нужно.

Kapusha
()