файл фильтра для определенной даты

Я не думаю, что wget поддерживает имя пользователя и пароль в URL. Попробуйте эту форму:

wget --user=login --password=pass ftp://download.site.co.in/

Еще лучше можно сохранить имя пользователя и пароль в .wgetrc или .netrc для предотвращения необходимости указать его на командной строке, где это могло бы быть замечено другими пользователями или сохранено в файл истории оболочки. Я не уверен в формате .wgetrc, можно прочитать страницу справочника на wget для этого. Для .netrc добавьте строку как:

machine download.site.co.in login login pasword pass

И wget будет автоматически использовать это если не указанный. Удостоверьтесь, что файл является chmod 700 для полномочий.

2
02.08.2012, 15:34
2 ответа

В соответствии с Солярисом, можно получить дату файла в применимом формате с ls -E.

Выполните итерации по всем файлам в каталоге журнала. Для каждого файла получите дату, создайте целевой каталог в случае необходимости и переместите файл.

for f in /var/opt/ers/logs/rio/*; do
  ymd=$(ls -Eog "$f" | awk '{print $4}')
  target=/ersdg3/ERS/ERS_INPUT_LOGS/RIO/LOGS/RIO_$ymd
  mkdir -p "$target"
  mv "$f" "$target"
done

Обратите внимание, что каталоги архива будут иметь имена как RIO_2012-07-31 вместо RIO_31-Jul-2012. Я рекомендую Y-M-D формат, потому что он сортирует в хронологическом порядке. Если действительно необходимо сократить имена месяца и порядок DMY, использовать ls -e вместо ls -E и измените вызов awk соответственно:

  mdy=$(ls -eog "$f" | awk '{print $5 "-" $4 "-" $7}')

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

find /var/opt/ers/logs/rio -type f -exec sh -c '
  ymd=$(ls -Eog "$0" | awk "{print \$4}")
  target=/ersdg3/ERS/ERS_INPUT_LOGS/RIO/LOGS/RIO_$ymd
  mkdir -p "$target"
  mv "$0" "$target"
' {} \;

С find, можно добавить ! -newer somefile прежде -exec только соответствовать файлам, которые являются более старыми, чем somefile. Можно добавить -mtime 42 только соответствовать файлам, которые были изменены по крайней мере 42 дня назад.

1
27.01.2020, 22:23

Вы могли найти файлы ctime o atime, затем переместить перечисленные файлы в правильный dir:

find . -iname "*.txt" -ctime -<daysago> -type f

"несколько дней назад" целое число.

0
27.01.2020, 22:23

Теги

Похожие вопросы