Восстановите задания крона, случайно удаленные с crontab-r

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

#!/bin/bash
wget -np http://www.imagebam.com/gallery/hwtfu6m7es3gun1emmpy2uheohrcckmt/
grep HTML-Code index.html > html_code
grep -E -o 'http://thumbnails[^"]+' html_code > thumb_urls
grep -E -o 'http://www[^"]+' html_code > image_pages
wget -i thumb_urls
wget -P image_pages_dir -i image_pages
for file in image_pages_dir/*
do
    echo $file
    grep -m 1 -o -E 'http://.*jpg' $file >> full_image_urls
done
wget -i full_image_urls
68
10.06.2014, 10:18
4 ответа

crontab -r удаляет единственный файл, содержащий задания cron.

Итак, если вы не сделали резервную копию, вашими единственными опциями восстановления являются:

  • На RedHat/CentOS, если ваши задания были запущены раньше, вы можете найти cron log в /var/log/cron. Этот файл поможет вам переписать задания еще раз.
  • Другой вариант - восстановление файла с помощью утилиты для восстановления файлов. Однако это менее вероятно, так как системный раздел обычно занят, а соответствующие сектора, вероятно, уже были перезаписаны.
  • На Ubuntu/Debian, если ваша задача выполнялась раньше, попробуйте grep CRON /var/log/syslog
52
27.01.2020, 19:31

vi /var/spool/cron/*user* или если вы являетесь пользователем root, то vi /var/spool/cron/root

-6
27.01.2020, 19:31

Если у вас нет файла /var/log/cron, вы можете восстановить команды (но не тайминги) из syslog.

grep 'CRON.*(yourusername)' /var/log/syslog

затем вы можете определить большинство временных интервалов, посмотрев на метки даты.

21
27.01.2020, 19:31

Это отстой, но если вы запустите crontab -r, ваш crontab исчезнет навсегда. И если у вас нет его резервной копии, вы должны просмотреть файлы системного журнала, чтобы получить представление о том, какие и когда задания выполнялись, и воссоздать их.

Хороший способ избежать такой проблемы — добавить следующую строку в ваш crontab:

@daily          crontab -l > $HOME/.crontab

Таким образом, ваш crontab каждый день копируется в $HOME/.crontab, поэтому, если вы случайно удалите его, будет доступна относительно свежая копия, которую можно установить с помощью:

crontab < $HOME/.crontab
3
14.09.2020, 03:45

Теги

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