У меня есть задание cron, которое запускает скрипт, чтобы развязать все файлы в определенном каталоге (/ rared для аргумента) и поместить расширенные файлы в / unrared. Я хотел бы изменить этот скрипт так, чтобы он удалял исходные rar-архивы из / rared, только если они были успешно извлечены.
Это не означает, что unrar сообщил, что они были полностью извлечены, потому что раньше у меня было повреждение данных во время декомпрессии.
В идеале (pie-in-the-sky, just чтобы дать вам представление о том, что я снимаю,) программа unrar будет включать эту функциональность, сравнивая ожидаемое значение md5sum с фактическим значением md5sum и удаляя только архив, если они совпадают. Я не против писать сценарий всего этого процесса, если это необходимо, но там сообщил, что будет лучше, чем два раза, и сравните md5sums.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
https://github.com/arfoll/unrarall
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
https://github.com/arfoll/unrarall
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
https://github.com/arfoll/unrarall
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Мой друг работает над сценарием оболочки bash для этого, который находится на github здесь.
Это сценарий, который у меня есть до сих пор, он сначала проверяет, работает ли текущая unrar операция, и выйдет, если есть (не хотите болотовать диск с кучей чтения / записи). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или удаляет архивы:
#!/bin/sh
# First check if there is an "unrar" running already, if so, exit.
if ps -ef | grep -v grep | grep -v unrarall | grep unrar ; then
exit 0
else
# This line probably unnecessary
PATH=$PATH:/usr/bin/
# The RARs I download are always multi-part, so I have to find the
# first file in the archive and extract only that. This is done
# using the "find" command. -exec means "run this command on the
# file" and the filename is substituted wherever {} is
find /rared/ -name "*part01.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*part001.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*.r00" -exec unrar -y -o- x \{\} /unrared \;
# If you only want .rar files, comment out the above 3 lines and
# uncomment the one below
# find /rared/ -name "*.rar" -exec unrar -y -o- x \{\} /unrared/ \;
fi
Это сопроводительная запись crontab:
# m h dom mon dow command
* * * * * rared/unrarall > /dev/null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, работает ли текущая unrar операция, и завершает работу, если есть (не хочу болотовать диск с кучей чтения / записи). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или удаляет архивы:
#!/bin/sh
# First check if there is an "unrar" running already, if so, exit.
if ps -ef | grep -v grep | grep -v unrarall | grep unrar ; then
exit 0
else
# This line probably unnecessary
PATH=$PATH:/usr/bin/
# The RARs I download are always multi-part, so I have to find the
# first file in the archive and extract only that. This is done
# using the "find" command. -exec means "run this command on the
# file" and the filename is substituted wherever {} is
find /rared/ -name "*part01.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*part001.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*.r00" -exec unrar -y -o- x \{\} /unrared \;
# If you only want .rar files, comment out the above 3 lines and
# uncomment the one below
# find /rared/ -name "*.rar" -exec unrar -y -o- x \{\} /unrared/ \;
fi
Это сопроводительная запись crontab:
# m h dom mon dow command
* * * * * rared/unrarall > /dev/null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, работает ли текущая unrar операция, и выйдет, если есть (не хотите болотовать диск с кучей чтения / записи). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или удаляет архивы:
#!/bin/sh
# First check if there is an "unrar" running already, if so, exit.
if ps -ef | grep -v grep | grep -v unrarall | grep unrar ; then
exit 0
else
# This line probably unnecessary
PATH=$PATH:/usr/bin/
# The RARs I download are always multi-part, so I have to find the
# first file in the archive and extract only that. This is done
# using the "find" command. -exec means "run this command on the
# file" and the filename is substituted wherever {} is
find /rared/ -name "*part01.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*part001.rar" -exec unrar -y -o- x \{\} /unrared/ \;
find /rared/ -name "*.r00" -exec unrar -y -o- x \{\} /unrared \;
# If you only want .rar files, comment out the above 3 lines and
# uncomment the one below
# find /rared/ -name "*.rar" -exec unrar -y -o- x \{\} /unrared/ \;
fi
Это сопроводительная запись crontab:
# m h dom mon dow command
* * * * * rared/unrarall > /dev/null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
Это сценарий, который у меня есть до сих пор, он сначала проверяет, существует ли текущая работа unrar
, и завершается, если есть (не хотите загружать диск с кучей чтения / пишет). Затем он распаковывает все файлы в / rared, которые еще не были отменены, помещая извлеченные файлы в / unrared. Он еще не проверяет извлеченные файлы или не удаляет архивы:
#! / Bin / sh # Сначала проверьте, работает ли уже «unrar», если это так, выйдите. если ps -ef | grep -v grep | grep -v unrarall | grep unrar; then exit 0 else # Эта строка, вероятно, не нужна PATH = $ PATH: / usr / bin / # Загружаемые RAR-файлы всегда многочастны, поэтому мне нужно найти первый файл в архиве и извлечь только это. Это делается с помощью команды «find». -exec означает «выполнить эту команду в файле #», и имя файла заменяется там, где {} находится / rared / -name «* part01.rar» -exec unrar -y -o- x \ {\} / unrared / \ ; find / rared / -name "* part001.rar" -exec unrar -y -o- x \ {\} / unrared / \; find / rared / -name "* .r00" -exec unrar -y -o- x \ {\} / unrared \; # Если вам нужны только файлы .rar, прокомментируйте вышеуказанные 3 строки и # раскомментируйте один из них ниже: find / rared / -name "* .rar" -exec unrar -y -o- x \ {\} / unrared / \ ; fi
Это сопроводительная записка crontab:
# mh dom mon dow command * * * * * rared / unrarall> / dev / null
$?
– Jeremy
18 October 2010 в 17:57