nixp.ru v3.0

25 мая 2017,
четверг,
06:03:44 MSK

DevOps с компанией «Флант»
unl1ke написал 11 декабря 2005 года в 16:16 (525 просмотров) Ведет себя как мужчина; открыл 3 темы в форуме, оставил 18 комментариев на сайте.

как создать сжатый архив файлов, измененных за последнюю неделю?

И как перевести часы на зимнее время на час в перед?

__

просто я не гуру =\

Genie

man tar

man gzip

man bzip2

в кратце что искать в манах: у tar есть ключ, который говорит включать в архив только файлы, которые новее определённой даты.

а так как tar может выводить результирующий архив на stdout, то его можно перенаправить на stdin одному из gzip или bzip2.

пара команд, немного опций…

хотя, если внимательнее почитать тот же man tar, то становится понятно, что команд там надо не две, а одной будет достаточно…

а вот со сменой времени на зиму. Вот я тут наколдовал:

#!/bin/bash

H=`eval date +%H`

M=`eval date +%M`

S=`eval date +%S`

if [ "$H" -eq "0" ]

then

$((H=23))

else

$((H=$H-1))

fi

date -s $H:$M:$S

а можно как-нибудь попроще сделать «в пару строк"???

Genie
а можно как-нибудь попроще сделать «в пару строк"???

можно. вообще не задаваться таким вопросом, выставивь в BIOS время в GMT.

и рассказав системе об этом. тогда она сама будет заниматься учётом летнего и зимнего времени…

ps:

#!/bin/sh
date -s "`date -d 'hour ago'`"

Пишу следующее:

tar -cjvf /home/unl1ke/pops.tar.bz2 `find /tmp -mtime -7`

все нормально. архив создается.

——--но когда пишу :

tar -cjvf /home/unl1ke/pops.tar.bz2 `find /root -mtime -7`

tar -cjvf /home/unl1ke/pops.tar.bz2 `find / -mtime -7`

Выдает:bash: /bin/tar: Argument list too long

———————-

как можно это исправить???

Genie

а что, у твоего tar нет подобной опции?

$ man tar

/--newer

--newer-mtime DATE

only store files whose contents have changed after DATE

to Genie:

вот так сделал поиcк и архивацию:

1. tar cjvf — `find / -mtime -7 -type f -print` > /home/arch.tar.bz2

2. find / -mtime -7 -type f -exec tar rvf «/home/arch.tar» '{}' \;

воот:)

PS:это все задачки по предмету=)

Вот еще: Нужно сделать скрипт что бы искал по системе файлы у которых в имени идут подряд 3 гласные буквы.

Вот это с точки зрения зравого смысла правильно?

find / -name «*[AEUIOaeuio][AEUIOaeuio][AEUIOaeuio]*» -type f -print

Genie
to Genie:

вот так сделал поиcк и архивацию:

ну так выхов find в данном случае избыточен

tar сам умеет делать что тебе необходимо…

Вот еще: Нужно сделать скрипт что бы искал по системе файлы у которых в имени идут подряд 3 гласные буквы.

Вот это с точки зрения зравого смысла правильно?

find / -name "*[AEUIOaeuio][AEUIOaeuio][AEUIOaeuio]*" -type f -print

ну, строго говоря, он у тебя ищет файлы, где не меньше 3х гласных подряд…

и я бы использовал, наверное, -iname '*[aeiou][aeiou][aeiou]*'

ну да это придирки..

и -print несколько избыточен, опять же…

Спасиба!

Да какие там придирки главное что кто мне что то хоть советует, а то я от ангицкой литературы опух =)

Any_Key

2 unl1ke

<font color=«blue»>Вот это</font> тебе в помошь, читать не перечитать.

о0 спасибо!

Опять же 2 Genie:^^

задачка:

Найдите в системе файл, состоящий из 5 и более заглавных букв подряд.

Решение:

find / -exec grep -l '[A-Z][A-Z][A-Z][A-Z][A-Z]' {} \;

нормально?

Genie

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

ну так ты лучше и тщательнее man grep почитай…

около опции -r, к примеру.

Спасиба что подсказал наCчет grep -r =)

Вроде так получилось:

grep -lr '[A-Z][A-Z][A-Z][A-Z][A-Z]' /

2 Genie:

Genie
$ man tar

/--newer

--newer-mtime DATE

only store files whose contents have changed after DATE

Так?:

tar -czf arch.tar.gz --newer-mtime=7 /
Genie
Так?:

как бы оно у тебя так не начало искать файлы, именённые после 7ой секунды Эпохи….

--newer-mtime="`date -d '7 days ago’`»

вроде бы так (тяжко думать после корпоративного празднования НГ)…..