LINUX.ORG.RU

как удалить лишние файлы, если их больше n

 , ,


0

1

здравствуйте

я новичёк в линуксе, поэтому прошу помощи у знающих людей.

есть каталог /backup, в него ежедневно сохраняются копии бэкапов. в каталоге должно оставаться не больше n файлов с разными расширениями. какой командой можно удалить лишнее колличество файлов, если оно более чем n? файлы должны удаляться только устаревшие. и, желательно, всё одной строкой.



Последнее исправление: man8531 (всего исправлений: 1)
Ответ на: комментарий от Napilnik

Ой прекол-та какой, утилита find! man find и вперёд, неофит, повышай скилл. Утилита не раз пригодится тебе ещё.

anonymous
()

Это называется backup rotation. Реализаций в интернете куча с самым разным принципом работы, выбирай какой хочешь.

Bfgeshka ★★★★★
()
Ответ на: комментарий от futurama

/arhiv/data/other/script: строка 3: синтаксическая ошибка рядом с неожиданным маркером «(» /arhiv/data/other/script: строка 3: `N=(($n+1))'

и не совсем понятно, куда здесь указывать пути очищаемых каталогов

man8531
() автор топика
Ответ на: комментарий от Bfgeshka

нужно что-то очень простое и надёжное. в windows применялась вот такая строка: FOR /F «skip=360 delims==» %%i IN ('DIR /b /a:-d /o:-d «D:\backup\temp\*.*»') DO DEL /f /q «D:\backup\temp\%%i» работало железно

man8531
() автор топика
Ответ на: комментарий от futurama

заработал, но не может удалить архивы у кого в имени файла присутствует пробел. можно это как-то исправить?

man8531
() автор топика
Ответ на: комментарий от Napilnik

Logrotate неожиданно для многих умеет ротировать не только логи.

Deleted
()
Ответ на: комментарий от futurama

непременно почитаю информацию про всё это. вот ещё нашёл на необъятных просторах интересный скриптик, который взвешивает каталог, и, если он превышает N мб, производится удаление файлов до нужного размера каталога:

while [ $(du -sm|cut -f1) -gt N ]; do rm -f "$(ls -1t . | tail -n1)";done
именно в таком виде - удаляет только в текущем каталоге

man8531
() автор топика
Ответ на: комментарий от anonymous

Ой прекол-та какой, утилита find! man find и вперёд, неофит, повышай скилл. Утилита не раз пригодится тебе ещё.

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

Napilnik ★★★★★
()

Всем, кто пишет «новичёк», надо выпить «Новичок».

anonymous
()
Ответ на: комментарий от anonymous

Это ты бредишь отторгая реальность, а у меня рабочая технология описана - клац по исполняемому скрипту, тот запустил бинарник с логикой, который обрабатывает инфу и кочегарит другие скрипты - лепота! Ничего сложного на баше, в любой момент можно поправить логику без манов и форумов!

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

В моей реальности у find с кодировками проблем нет, а kfind его в скриптах не может заменить в принципе. В моей реальности, опять же, у find в порядке man, и info по findtils тоже.

anonymous
()
Ответ на: комментарий от anonymous

В моей реальности у find с кодировками проблем нет

А в моей используется больше чем одна утф-8.

а kfind его в скриптах не может заменить в принципе.

А в моей, в скриптах и find не нужен - есть findfirst и findnext, которые неплохо ищут.

В моей реальности, опять же, у find в порядке man, и info по findtils тоже.

FIND(1)                                                                  FIND(1)

NAME
       find - search for files in a directory hierarchy

SYNOPSIS
       find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]

DESCRIPTION
       This  manual  page  documents the GNU version of find.  GNU find searches
       the directory tree rooted at each given file name by evaluating the given
       expression  from left to right, according to the rules of precedence (see
       section OPERATORS), until the outcome is known (the  left  hand  side  is
       false  for  and operations, true for or), at which point find moves on to
       the next file name.

       If you are using find in an environment where security is important  (for
       example  if  you  are using it to search directories that are writable by
       other users), you should read the "Security  Considerations"  chapter  of
       the findutils documentation, which is called Finding Files and comes with
       findutils.   That document also includes a lot more detail and discussion
       than  this manual page, so you may find it a more useful source of infor‐
       mation.

OPTIONS
       The -H, -L and -P options control the treatment of symbolic links.   Com‐
       mand-line  arguments  following  these  are taken to be names of files or
       directories to be examined, up to the first  argument  that  begins  with
       `-',  or  the argument `(' or `!'.  That argument and any following argu‐
       ments are taken to be the expression describing what is  to  be  searched
       for.   If  no  paths  are  given,  the  current directory is used.  If no
       expression is given, the expression -print is used (but you should proba‐
 Manual page find(1) line 1 (press h for help or q to quit)

И зачем мне эту портянку изучать, кто это оплатит? Свои силы можно потратить на более профильную информацию.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

А в моей используется больше чем одна утф-8.

У тебя что, в одной ФС лежат файлы с именами в разных кодировках? Тогда ты король ССЗБ.

А в моей, в скриптах и find не нужен - есть findfirst и findnext, которые неплохо ищут.

И как же это решает проблему кодировок?

И зачем мне эту портянку изучать, кто это оплатит?

Тебе - незачем, это да.

anonymous
()
Ответ на: комментарий от anonymous

У тебя что, в одной ФС лежат файлы с именами в разных кодировках? Тогда ты король ССЗБ.

У меня куча фс. А ещё бывает нужно и по содержимому файлов что-то поискать.

И как же это решает проблему кодировок?

Когда рассматриваешь информацию в виде наборов байтов, кодировки волшебным образом идут нафиг: какие байты дал задание искать, те и найдутся.

Napilnik ★★★★★
()
Ответ на: комментарий от Napilnik

У меня куча фс.

Монтировать их научись.

А ещё бывает нужно и по содержимому файлов что-то поискать.

Это другая задача.

Когда рассматриваешь информацию в виде наборов байтов, кодировки волшебным образом идут нафиг: какие байты дал задание искать, те и найдутся.

Когда рассматриваешь блочное устройство в виде набора байтов, вообще всё идёт нафиг: полная свобода искать байты.

anonymous
()
Ответ на: комментарий от Napilnik

Когда рассматриваешь информацию в виде наборов байтов, кодировки волшебным образом идут нафиг: какие байты дал задание искать, те и найдутся.

Вы сударь наверное еще и биологию разбираете на атомарно-квантовом уровне...

и компутеру начниая с резисторов собираете...

pfg ★★★★★
()
Ответ на: комментарий от pfg

и компутеру начниая с резисторов собираете...

Ну собирать не собираю, а вот хотя-бы общее понимание того как всё это компьютерное барахло работает на уровне резисторов-транзисторов неплохо бы иметь всем кто мнит себя суперадминами.

AfterWork
()
Ответ на: комментарий от anonymous

У тебя что, в одной ФС лежат файлы с именами в разных кодировках?

А Вы что никогда не сталкивались с НЕОБХОДИМОСТЬЮ такого?

AfterWork
()
Ответ на: комментарий от AfterWork

вот именно суперадминистратору знание компутерной техники на уровне даже отдельных логических элементов бессмысленно. эт я тебе как схемотехник говорю. для этого должны быть проф.ремонтники.

ибо держать в одной черепушке сетевую структуру со всеми серверами, сервисами, контейнерами и т.д. А также учитывать поведение каждой отдельной микросхемки никаких мозгов не хватит :) совершенно разные уровни, слабо меж собой связанные.

pfg ★★★★★
()
Ответ на: комментарий от AfterWork

А зачем ?? именно разные кодировки ??

ибо утф-8 полностью перекрывает все известные на данные момент языковые кодировки.

а если пользователь захочет файлики/содержимое в другой кодировке, то перекодировать должен сервер, который енто содержимое отдает пользователю.

pfg ★★★★★
()
Ответ на: комментарий от anonymous

Монтировать их научись.

Поучи Торвальдса линуксы писать, чтобы у них стандарты не менялись.

Это другая задача.

Тоже нужная, а если find с ней плохо справляется и не имеет других явных полезных качеств, то выбывает из списка полезных ништяков в команду запасных.

Napilnik ★★★★★
()
Ответ на: комментарий от pfg

Вы сударь наверное еще и биологию разбираете на атомарно-квантовом уровне...

Кванты - виртуальные частицы и нужны тем, кто не хочет говорить о предмете конкретно или знает тонну формул, их можно заменить килограммами, метрами и секундами.

и компутеру начниая с резисторов собираете...

Компутеру сейчас так не получится, а вот файлы читать предпочитаю как двоичные а не текстовые.

Napilnik ★★★★★
()
Ответ на: комментарий от pfg

ибо утф-8 полностью перекрывает все известные на данные момент языковые кодировки.

У этой технологии гнилое исполнение и сущность: подстроимся под американцев, а остальные пусть страдают. На десктопе иногда возникают имена файлов абракодаброй, их потом даже удалить проблема. Кроме того, наплодили в утф-8 откровенного говна - объёма то маловато, так пусть же будут вместо символов глифы состоящие из нескольких символов!

Napilnik ★★★★★
()

А кто-нибудь видел напильника вживую? Он даже IRL такой упоротый?

kirk_johnson ★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.