Я не думаю, что 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 для полномочий.
В соответствии с Солярисом, можно получить дату файла в применимом формате с 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 дня назад.
Вы могли найти файлы ctime o atime, затем переместить перечисленные файлы в правильный dir:
find . -iname "*.txt" -ctime -<daysago> -type f
"несколько дней назад" целое число.