среда, 23 ноября 2016 г.

Weblogic MIME-type


При скачивании файлов XLSX они переименовываются в Internet Explorer 8 в ZIP.

Проблема не нова. IE8 считает xlsx, docx, pptx ZIP-архивами, потому что они на самом деле и есть ZIP-архивы.

Microsoft добавила поддержку этих форматов в IE9 - там все работает.

Можно предложить запаковку xlsx в RAR/ZIP - тогда ничего не надо будет переименовывать, но придется распаковывать скачанный архив.

Ну или как вариант отказаться от IE8.

Но есть вариант настройки сервера - тогда все будет работать!

В директории user_projects/domains/ИМЯ_ДОМЕНА/config необходимо создать файл mimemappings.properties и прописать в нем все требуемые расширения.

В моем случае это xlsx, но добавлю заодно и остальные расширения от Office 2007+:

xlsx=application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
docx=application/vnd.openxmlformats-officedocument.wordprocessingml.document
pptx=application/vnd.openxmlformats-officedocument.presentationml.presentation

После перезапуска Weblogic (/etc/ini.d/petroviz restart) IE8 скачивает как
надо XLSX.

Вот здесь найдено решение
От Microsoft так и нет ответа по проблеме
Список MIME-типов

вторник, 8 ноября 2016 г.

Linux подсчет размера всех файлов в директории

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

В мире Linux все гораздо понятнее - каждая директория занимает какое-то место, поэтому ее размер входит в суммарный размер.

Задача - сделать как на Windows.

1. Попытка сделать через find + du
  du -b -c `find $1 -type f ` | tail -1

Минусы в игнорировании файлов с пробелами:
 bash-4.1$ du -b -c `find testdir -type f`
du: невозможно получить доступ к <<
testdir/1>>: Нет такого файла или каталога
du: невозможно получить доступ к <<2.txt>>: Нет такого файла или каталога
6      
testdir/2/4.txt
23     
testdir/2/3.txt
29      итого
bash-4.1$ find 
testdirtestdir/1 2.txttestdir/2testdir/2/4.txttestdir/2/3.txt






Еще один минус - ограничение на количество операндов:

  du -b -c `find /home/skobelev -type f`
 /usr/bin/du: Слишком длинный список аргументов
 bash-4.1$ find /home/skobelev/ | wc
 153307  214391 12042757

2. Вариант ls + awk

ls -lGR 1 | awk '{ if ($2==1) total += $4; }; END { print total }' 

bash-4.1$ ls -lGR testdir | awk '{ if ($2==1) total += $4; }; END { print total }';
33
bash-4.1$ ls -lGR
testdir:
итого 8
-rw-r--r-- 1 skobelev    4 Ноя  8 15:27 1 2.txt
drwxr-xr-x 2 skobelev 4096 Ноя  7 17:04 2
testdir/2:
итого 8
-rw-r--r-- 1 skobelev 23 Ноя  7 16:56 3.txt
-rw-r--r-- 1 skobelev  6 Ноя  7 17:04 4.txt



Кстати и по скорости этот вариант лучше работает:
bash-4.1$ time ./size_of_files_only.sh /home/skobelev/Downloads/
116902412012 итого

real    0m0.197s
user    0m0.092s
sys     0m0.070s

bash-4.1$ time ./size_of_files_only2.sh /home/skobelev/Downloads/
131521835169

real    0m0.049s
user    0m0.026s
sys     0m0.029s