Автор:
RickDeckardОригинальная тема:
[Windows] Automate downloading TalkImg backup files
[Windows] Автоматизируйте загрузку резервных копий файлов TalkingПосле нескольких неудачных попыток создать резервную копию файлов с помощью Powershell, у автора получилось сделать это в Windows, используя комбинацию wget и планировщика заданий. Если вам нужны резервные копий файлов, предоставленных @joker_josue (и не очень разбирается в технологиях), вы можете воспользоваться следующим руководством для Windows (спасибо TryNinja за альтернативный вариант) и Linux (спасибо @LoyceV!):
WINDOWSНеобходимое ПО: Скачайте
wget.exe отсюда[1].
Команда для загрузки может быть одним из этих вариантов:
wget --progress=bar:force -r -c -nd -A.zip -np <URL>
Описание каждой команды:
- --progress=bar:force : Отображает индикатор выполнения для каждого файла, который вы в конечном итоге загрузите;
- -r : Рекурсивная загрузка. Этот параметр отвечает за загрузку каждого файла с заданного URL-адреса;
- -c : Проверяет, существуют ли такие файлы в папке. Если да, то не будет повторной загрузки. Если они существуют, загрузка продолжается с того места, где она закончилась;
- -nd : Предотвращает создание папок в каталоге, в котором сохраняются файлы;
- -A.zip : Будет искать только файлы, с расширением ".zip";
- -np : Wget не будет отображаться в каталоге, который в данный момент просматривается/используется;
Если вы хотите загрузить в другую папку, вы можете изменить команду:
wget --progress=bar:force -r -c -nd -A.zip -np -P <Path to folder> <URL>
Новый параметр (
-P) загрузит wget файлы в указанный вами каталог.
Насчет новой задачи:
Откройте планировщик заданийэто можно сделать, нажав клавишу Windows и набрав «Планировщик заданий».
Создание и настройка заданияНажмите «Создать новое задание» в главном окне, которое откроется после выполнения:
В появившемся новом меню назовите ваше задание. Здесь она названо «TalkImg Backup» и не добавлено дополнительного описания (это нормально). Нажмите «Далее» :
В этом новом меню вы можете выбрать, как часто это задание будет запускаться. Учитывая, что веб-сайт делает еженедельные резервные копии (за предыдущую неделю),«Еженедельно» . Нажмите «Далее»
Предполагается, что резервные копии всегда будут обновляться в воскресенье (в соответствии с последним обновленным пакетом). Таким образом, выберите «Понедельник» . Вы также можете выбрать время загрузки (для этого примера выбрано 08:00). Когда вы закончите настройку, нажмите «Далее» :
В следующем меню нажмите «Запустить программу», а затем «Далее» :
В этом новом меню вы получите два важных поля, которые необходимо заполнить:
- Программа/скрипт: здесь вы должны указать путь к файлу wget, указанному ранее[1]. В качестве примера добавлено "D:\wget.exe"
- Дополнительные параметры (необязательно): это будет командная строка, которую вы «скормите» ранее совместно используемому wget [1]. Если хотите, чтобы выходные файлы загружались в другой каталог, то используйте следующую команду
wget --progress=bar:force -r -nd -A.zip -np -P "D:\TalkImg Backup" https://talkimg.com/tempbackups/
Когда закончите, нажмите «Далее» .
В следующем меню вы сможете просмотреть настройки задания. В этом примере сценарий будет запускаться «Еженедельно; в 08:00 каждый понедельник каждой недели, начиная с 06.08.2023» . Если все выглядит нормально, просто нажмите «Готово» :
TryNinja CMD методДля тех, кто предпочитает использовать командную строку, вы также можете создать задание с помощью этой команды:
SCHTASKS /Create /TN "TalkImg Backup" /SC WEEKLY /D MON /ST 08:00 /TR "C:\path\to\wget.exe --progress=bar:force -r -nd -A.zip -np -P \"D:\TalkImg Backup\"
https://talkimg.com/tempbackups/"
Просто не забудьте изменить путь к файлу wget.exe, а также место для сохранения файлов (например, D:\TalkImg Backup\).
LINUXЯ использую это в Linux в cronjob:
#!/bin/bash
cd /data/backup_talkimg
sleep $(( $RANDOM % 22 ))h; sleep $(( $RANDOM % 59 ))m # Random time each day
wget -q --no-parent -rcA.zip https://www.talkimg.com/tempbackups/
Есть один недостаток: если joker_josue заменит старый .zip чем-то другим с тем же именем, мой локальный файл будет перезаписан. Но мое локальное резервное копирование с помощью «Машины времени» гарантируют, что я не потеряю файлы таким образом.
Я использую случайное время для распределения пропускной способности сервера. Повторный запуск занимает всего секунду, поэтому ежедневные проверки новых данных не имеют значения.
Поздравляем! Вы создали свою задание и теперь выступаете в качестве резервного агента для изображений, размещенных на TalkImg. Ура!
Изменения- 10/06/2023: В команду добавлен параметр "-c".
- 11/06/2023: Добавлено руководство по Linux и альтернативный метод для Windows. Спасибо LoyceV и TryNinja!
[1]
https://eternallybored.org/misc/wget/