![]() |
Помогите написать скрипт на Bash
Доброе время суток.
Помогите пожалуйста написать скрипт на Bash"е. Установленна samba, Fedora 17. Путь к розшаренной папке /home/backup/dostup . В доступе, папки созданы таким образом, что есть: - папка для всех юзеров - отдел - фамилия Скрипт будет запускаться с /opt Надо сделать так, что бы скрипт копировал файлы которым больше двух недель в /home/backup/old_dostup_files), а потом удалял файлы и папки, внутри папки "- фамилия". Ходил по отделам и чистил. Само дерево папок, удалять нельзя. Отделов больше 10-ти, фамилий больше 100 (фамилии удалять нельзя). Для того, что бы не засорять локальный файлообменник. Если у кого-то, есть какие-то ссылочки, на почти готовое, буду только рад. Попробую методом тыка допилить )) Спасибо. |
Примерно такую команду в cron раз в сутки:
find /home/backup/dostup -mtime +14 -exec /bin/mv {} /home/backup/old_dostup_files/ \; Все файлы, изменявшиеся давнее 14 дней будут перемещены в /home/backup/old_dostup_files/ без сохранения относительного пути. Пустые директории также не трогаются, вам надо будет придумать, как их удалять, сделав исключение, чтобы удалялись только папки, которые юзеры сами накропали у себя в шарах. Без этого условия удаление пустых папок также просто: find /home/backup/dostup -type d -empty -exec rmdir {} \; |
Спасибо большое... Всего лишь одна строчка )))) А я ма :))) Срочно учить баш :))
|
Цитата:
Да и не сделает всё по уму, пустые папки останутся. Тут вам придумывать, как решать. Можно в корне юзера сделать неудаляемый файл типа .noremove и chattr +i его. Можно покрутить права и в find их учитывать. |
Всё бы ничего, но... )))
Чуть не подошел вариант. Т.к. пользователи переписывают файлы и папки, с разной датой. Получается что: удаляется всё, что старше 14-ти дней (да, всё удаляется правильно). Удаляет чуть не то, а именно: папка и файлы были созданы (например) 2 месяца назад, в доступ их выложили вчера, а оно его потёрло. И понятно почему, т.к. старше 14-ти дней. Можно ли как-то выбрать что-то типа даты записи в шару, потом что бы команда искала какие файлы и папки (можно просто файлы), были созданы , сохраняла в файл, и потом другая команда удаляла это всё дело, можно просто файлы. Или я не от туда начинаю? или не правильно представляю? |
Цитата:
Инфа для размышления http://www.linux-faqs.info/general/d...time-and-atime |
На всякий случай имеется три опции времяни:
-atime - время от последнего обращения (доступа) к файлу -ctime - время от последнего изминения статуса файла -mtime - время последней модификации файлов. В крайнем случае, есть команда touch, которая своим нежным касанием умеет изменять и время доступа к файлу, и время его модификации (на любое), и которую, можно натравить на нужные файлы. http://sysadmins.ru/topic296860.html |
Время: 04:36. |
Время: 04:36.
© OSzone.net 2001-