Jump to content

Recommended Posts

Posted

Спасибо за скрипт.

добавил отправку файлов через бот телеги:

    #tg send
    if [ "$IsTg" = "1" ]
	then
        if [ "$DOW" = "6" ]
            then
            smarthtml_mailer_tg ${BACSTORDIR}${BACNAME}-${DATE}.tgz 1
        fi
    fi

архив энтваре раз в неделю, прошивку и конфиг по изменению.

скрипт smarthtml_mailer_tg взят из smarthtml и доработан:

if [ -n "$ISFILE" ]; then
    $CURL_CMD -F chat_id="$CHAT_ID" -F document=@"$MAILER_MSG_FILE" https://api.telegram.org/bot"$API_TOKEN"/sendDocument
    else
    MSG="<strong>`cat "$MAILER_MSG_FILE"`</strong>"
    $CURL_CMD --data-urlencode "text=${MSG}" "https://api.telegram.org/bot${API_TOKEN}/sendMessage?chat_id=${CHAT_ID}&parse_mode=html" 2>&1
fi

 

  • Thanks 3
  • 6 months later...
Posted
В 27.08.2022 в 09:15, MishaN сказал:

Спасибо за скрипт.

добавил отправку файлов через бот телеги:

    #tg send
    if [ "$IsTg" = "1" ]
	then
        if [ "$DOW" = "6" ]
            then
            smarthtml_mailer_tg ${BACSTORDIR}${BACNAME}-${DATE}.tgz 1
        fi
    fi

архив энтваре раз в неделю, прошивку и конфиг по изменению.

скрипт smarthtml_mailer_tg взят из smarthtml и доработан:

if [ -n "$ISFILE" ]; then
    $CURL_CMD -F chat_id="$CHAT_ID" -F document=@"$MAILER_MSG_FILE" https://api.telegram.org/bot"$API_TOKEN"/sendDocument
    else
    MSG="<strong>`cat "$MAILER_MSG_FILE"`</strong>"
    $CURL_CMD --data-urlencode "text=${MSG}" "https://api.telegram.org/bot${API_TOKEN}/sendMessage?chat_id=${CHAT_ID}&parse_mode=html" 2>&1
fi

В каком формате сохранять файл бэкап?

 

Posted
В 27.08.2022 в 09:15, MishaN сказал:
В 27.08.2022 в 09:15, MishaN сказал:

Спасибо за скрипт.

 

В каком формате сохранять файл скрипта бэкап?

Posted

В текстовом формате. Только не забыть установить потом на скрипт права исполняемого файла.

Posted
В 20.03.2023 в 09:42, gvan сказал:

В текстовом формате. Только не забыть установить потом на скрипт права исполняемого файла.

txt? и задаёшь права в entware?

 

Posted
25 минут назад, Mickey_Mouse сказал:

txt? и задаёшь права в entware?

Расширение не имеет значения. Главное что нужно сделать - chmod +x

Posted
1 час назад, Mamay сказал:

Расширение не имеет значения. Главное что нужно сделать - chmod +x

тогда что я не так делаю?image.png.c236f4fe106bfeeff1ba560fa0f9b432.png

Posted
23 минуты назад, Mickey_Mouse сказал:

тогда что я не так делаю?

Сие мне неведомо, но аглиццки по чёрному написано:

Не существующий файл или директория.

Posted
6 минут назад, Mamay сказал:

Сие мне неведомо, но аглиццки по чёрному написано:

Не существующий файл или директория.

файл в нужном месте, правильно же скопировал? image.png.8e06f75c91c7b6c5357a8951f7384696.png

image.png

Posted

Смею предположить, что вы чмодите не в той папке, где лежит пресловутый backup. Либо указывайте фулл патч, либо смените директорию на нужную. 

Posted
20 минут назад, Mickey_Mouse сказал:

так вот, как прописать верный путь, у меня всё там image.png.69dfdd92808df8bc560eb4d8fcde55f4.png

Так: chmod +x /opt/etc/cron.daily/backup

Posted
2 минуты назад, Rootdiv сказал:

Так: chmod +x /opt/etc/cron.daily/backup

всё? в ответ никакой команды не было image.png.22571040c817e3f0c53728d1c3119da8.png

Posted
8 минут назад, Mickey_Mouse сказал:

всё? в ответ никакой команды не было image.png.22571040c817e3f0c53728d1c3119da8.png

Да, значит всё прошло успешно.

Posted
Только что, Rootdiv сказал:

Да, значит всё прошло успешно.

и дальше типа надо вставлять отдельную флешку для резервной копии? так и не понял, как создать копию

Posted (edited)
1 час назад, Mickey_Mouse сказал:

и дальше типа надо вставлять отдельную флешку для резервной копии? так и не понял, как создать копию

Как вариант, но в любом случае нужно прописать путь к месту куда хотите сохранять. Остальное сделат скрипт.

Edited by Rootdiv
  • 6 months later...
Posted

При ручном запуске скрипт работает, но выдаёт такую ошибку
 

[root@Tech : ~]#>. /opt/etc/cron.daily/backup
grep: warning: stray \ before !
grep: warning: stray \ before !
{

Стоит обратить внимание или забить?

  • 8 months later...
Posted

У меня накрылись usb-порты на моём роутере. Я в рамках оперативного решения, пока переношу entware на внутреннюю память. Так как диск, на котором был установлен entware доступен, я просто запаковал весь раздел с ним в tar.gz, создал на внутренней памяти папку install, загрузил туда этот архив. Но каждый раз когда я выставляю память для opkg на внутреннюю память, роутер не хочет распаковывать этот архив, в логах:

 
npkg
failed to inflate "03-07-2024-23-32-backup.tar.gz": bad size (00000000256).
 
и какого бы я размера архива не добивался, всегда та же ошибка. Нв внутренней памяти свободно 100 с лишним мегабайт, архив в пожатом состоянии около 3 МБ, в непожатом около 6.

Подскажите, может кто знает в чём дело? Может необходимо какие-то права архиву прописать (пробовал отельно chmod +x и отдельно chmod 755).
 
пакую такой командой:
 
tar cvzf /test/`date "+%d-%m-%Y-%H-%M"`-backup.tar.gz *
  • 2 months later...
Posted

На KeeneticOs 4.2 Beta 4 отработал с такими ошибками

tar: etc/qBittorrent_entware/config/ipc-socket: socket ignored
./backup: line 72: ndmq: not found
./backup: line 101: ndmq: not found
cp: can't stat '/tmp/mnt/WDSSD/backup/firmware-2024-09-19': No such file or directory

 

Posted
44 минуты назад, Dalex сказал:

На KeeneticOs 4.2 Beta 4 отработал с такими ошибками

tar: etc/qBittorrent_entware/config/ipc-socket: socket ignored
./backup: line 72: ndmq: not found
./backup: line 101: ndmq: not found
cp: can't stat '/tmp/mnt/WDSSD/backup/firmware-2024-09-19': No such file or directory

 

На предыдущей странице была инфа, как можно установить вручную ndmq

 

  • Thanks 1
  • 1 month later...
Posted (edited)

Я чисто Entware бэкаплю вот этим скриптом:

#!/bin/sh

# Создаем резервное копирование
backup_file="/opt/entware-backup/entware-backup-$(date +%Y-%m-%d).tar.gz"
tar -czf "$backup_file" --exclude=/opt/entware-backup /opt

# Загружаем файл на FTP сервер
ftp_server="192.168.100.2"
ftp_user="admin"
ftp_pass="Pa$$w0rd"
ftp_path="/Backup/Entware/"

# Загружаем файл
curl -T "$backup_file" ftp://$ftp_user:$ftp_pass@$ftp_server$ftp_path

# Проверяем успешность загрузки и удаляем файл
if [ $? -eq 0 ]; then
    echo "Backup uploaded successfully. Deleting local file..."
    rm "$backup_file"
else
    echo "Failed to upload backup."
fi

Должна быть создана папка /opt/entware-backup (она добавлена в исключения в скрипте, чтобы избежать зацикленности), в нее пишется архив всего Entware с текущей датой, после чего архив загружается на мою хранилку по FTP (на Entware должен быть установлен curl), после загрузки архив удаляется из директории /opt/entware-backup.

Этот скрипт стоит в cron на каждое воскресенье.

Edited by corder
  • Thanks 2
  • 2 months later...
Posted (edited)
В 06.10.2023 в 15:55, yrzorg сказал:

При ручном запуске скрипт работает, но выдаёт такую ошибку
 

[root@Tech : ~]#>. /opt/etc/cron.daily/backup
grep: warning: stray \ before !
grep: warning: stray \ before !
{

Стоит обратить внимание или забить?

Разобрались с этим? У меня такой же вывод.

Разобрался

1. grep: warning: stray \ before !

Эта ошибка возникает из-за некорректного экранирования символа ! в строке:

EXCLCONFCMD='\! \$\$\$\|clock date' 
  • Символ ! в grep требует экранирования (\!) только в контексте интерпретации shell (например, в интерактивной оболочке, где ! используется для истории команд).
  • В скрипте экранировать ! в аргументах grep не нужно, если команда выполняется не в интерактивной оболочке.

Решение: Удалите экранирование !, оставив:

EXCLCONFCMD='! $$$\|clock date'

 

Плюс ошибка как у пользователя выше.

cp: can't stat '/tmp/mnt/DK_1Tb/00_Backup/keenetic_ultra_h/auto/firmware-2024-12-28': No such file or director

В итоге в бапке бэкапов создаются бэкапы конфига, текущего конфига, бэкап entware, но не бэкап прошивки.

Бэкап прошивки падает в /opt/backup и заворачивается вместе с этой папкой в бэкап entware. Что кажется как-то криво.

Переменные в скрипте:

BACFIRMDIR=OPKG:/backup/

BACSTORDIR=/tmp/mnt/DK_1Tb/00_Backup/keenetic_ultra_h/auto/

Cкрипте  взят в варианте от @usan с получением прошивки через rci.

ЧЯДНТ?

 

Keenetic Ultra KN-1811, прошивка 4.2.1. К роутеру подключена флэшка с entware и HDD на который бэкапится конфиг

 

Edited by G V
Posted

Доброго времени суток!
Может ли кто-то пошагово описать процедуру переноса Entware со всем установленным ПО и его настройками из внутренней памяти роутера на внешний USB-диск, подключённый к USB-порту роутера?

  • Confused 1
Posted
В 03.01.2025 в 21:36, Absaz сказал:

Доброго времени суток!
Может ли кто-то пошагово описать процедуру переноса Entware со всем установленным ПО и его настройками из внутренней памяти роутера на внешний USB-диск, подключённый к USB-порту роутера?

1. Сделать бэкап

Вручную через 

tar cvzf /opt/opkg_backup.tar.gz -C /opt

где /opt/opkg_backup.tar.gz - куда сохранять

автоматически можно через скрипт

2. По инструкции так же развернуть Entware, только использовать полученный архив. 

install/opkg_backup.tar.gz

  • Thanks 1
Posted (edited)

Решение хорошее, пользовался им до тех пор пока внешний SSD не накрылся и весь бэкап не потерялся тоже.
Да, хранить бэкап на том же устройстве плохая идея.

Поэтому решил переделать скрипт под себя, добавил через rclone копирование на сетевую шару и на Google Drive и Mega.

Плюсом нотификация о результатах бэкапа в телеграм.

Кладем backup_config.env по пути /opt/etc

А скрипт backup по пути /opt/usr/bin/, но можно и любой другой по усмотрению.

Даём права на исполнение:

chmod +/opt/usr/bin/backup

Далее жмем crontab -e и добавляем задачу в планировщик, естественно время выбираем по вкусу:

0 11 * * * /opt/bin/bash /opt/usr/bin/backup

 

backup backup_config.env

Edited by AssGuard2
  • Thanks 2
Posted
2 часа назад, AssGuard2 сказал:

 

chmod +/opt/usr/bin/backu

chmod +x /opt/usr/bin/backup

 

  • Upvote 1
Posted

Хотелось бы отметить несколько моментов, которые я как нуб открыл для себя лично.

1. "Встроенный " tar и tar, установленный через "opkg install tar" работают по-разному. Как минимум, в первом нет ключей "--exclude"

Дальнейшее относится к отдельно устанавливаемому tar-у.

2. 

Команда вида

tar cvzf /opt/opkg_backup.tar.gz -C /opt

работать не будет. Сработает либо 

tar cvzf /opt/opkg_backup.tar.gz /opt

либо

tar cvzf /opt/opkg_backup.tar.gz -C /opt .

Важна точка на конце.

Их различие прекрасно разжёвано тут:

Для случая, если мы хотим восстановить бэкап через автоматическую распаковку архива из папки install, нам подходит только команда, оканчивающаяся на "-C /opt ."

3. В случае использования ключей --exclude вариант, который заработал через скрипт, имеет такой вид:

tar --exclude=var/run/* cvzf /opt/opkg_backup.tar.gz -C /opt .

При такой команде "/opt/var/run" войдёт в архив, но пустая. Если ввести "--exclude=var/run" - папки "run" вовсе не будет. Если ввести "--exclude=/opt/var/run/*" или "--exclude=/opt/var/run" - ключ "--exclude" не сработает.

  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.