Вы могли попытаться использовать Raspberry Pi (http://www.raspberrypi.org/)
Это только имеет один порт Ethernet, но по половине Вашей указанной цены, Вы могли купить 2 для получения двойного порта Ethernet, эффективно удвоив питание системы.
Я даже не записал бы сценарий - необходимо смочь поместить команду находки в непосредственно. Можно также звонить, удалить команда непосредственно от находки с помощью - удаляют флаг действия.
Шаг 1: редактирование crontab
crontab -e
Шаг 2: добавьте в следующей строке (это выполнит ее ежедневно в 4:30, изменится на Вашу симпатию):
30 4 * * * find /path/to/directory -name "index.html" -delete
Шаг 3: Сохраните и выйдите.
Поскольку Вы упомянули, что относительные пути предполагают, что, например, Вы хотите очистить дерево, расположенное в /path/to/directory
. Затем следующие отрывки все достигнут того же. Первый использует аргумент полного пути в пользу find
, оставление три относительное (относительно того, измененного на с предыдущим cd
)
#!/bin/bash
find /path/to/directory -name "index.html" -print0 | xargs -0 rm -rf
#!/bin/bash
cd /path || exit
find to/directory -name "index.html" -print0 | xargs -0 rm -rf
#!/bin/bash
cd /path/to || exit
find directory -name "index.html" -print0 | xargs -0 rm -rf
#!/bin/bash
cd /path/to/directory || exit
find . -name "index.html" -print0 | xargs -0 rm -rf
И voilà?
Запаздывание /
не важно для find
команда, если /path/to/directory
символьная ссылка, или Вы хотите получить ошибку если /path/to/directory
не каталог.
Необходимо будет установить файл как исполняемый файл.
Вы просто ответили на свой собственный вопрос :D
#!/bin/bash
на его собственной строке? Это было просто.
– Ali Samii
17.01.2014, 11:14
bash
или sh
или ksh
это зависит, на котором Вам нравится большинство, но для простого сценария как этот удар в порядке
– Kiwy
17.01.2014, 11:16
index.html
в следующем пути /home/user/site/client/conf/repo/section
и во всех подкаталогах такой как /home/user/site/client/conf/repo/section/dir1
и /home/user/site/client/conf/repo/section/dir2
что я вставил бы как путь для cd
команда и что я поместил бы как путь для find
команда. Я хочу удостовериться, что это только удаляет названные файлы index.html
и только те, которые являются в корне /home/user/site/client/conf/repo/section
и его подкаталоги.
– Ali Samii
17.01.2014, 11:22
~/site/client/conf/repo/section
или относительно корня сервера, который является /home/user/site/client/conf/repo/section
?
– Ali Samii
17.01.2014, 11:25
Простой, быстрый и портативный путь состоит в том, чтобы использовать:
find /path/to/directory -name index.html -exec rm -f {} +
-print0
, -delete
и xargs -0
расширения GNU.
rm -f
Я предполагаю, что это не рекурсивное, удаляют. Я предполагаю, что должен был бы изменить его к rm -rf
сделать это рекурсивным, правильно?
– Ali Samii
17.01.2014, 14:12
find
команда является рекурсивной. Если Вам не назвали каталоги index.html
, -r
было бы бесполезно.
– jlliagre
17.01.2014, 14:14
crontab -e
, строка, которую я добавил бы, будет * * * * * find /path/to/directory -name index.html -exec rm -f {} +
– Ali Samii
17.01.2014, 14:18
* * * * * find /path/to/directory -name index.html -delete
? Это было бы рекурсивно? – Ali Samii 17.01.2014, 14:06find
является всегда рекурсивным. – terdon♦ 17.01.2014, 14:17* * * * * find /path/to/directory -name index.html -delete
и* * * * * find /path/to/directory -name index.html -exec rm -f {} +
– Ali Samii 17.01.2014, 14:20-exec command +
(отметьте+
), это вызоветfind
объединить имена файлов в как можно меньше команд в то время как-delete
будет звонитьunlinkat()
однажды для каждого файла. Я нисколько не уверен, который будет быстрее. В любом случае, aslisamii, это детали, и Вы действительно не заботитесь. Используйте, какой бы ни Вы предпочитаете, просто помните это-delete
не доступно на всехfind
реализации. – terdon♦ 17.01.2014, 14:48