LINUX.ORG.RU

Сообщения doko

 

htaccess правило проверки наличия файла при редиректе

Форум — Web-development

Приветствую. Есть такая вот задача, не могу придумать нормальное решение. Есть «основной файл» .job. Если его нет = 403. Доступен по
eee.ru/files/111-222.job

Есть «вторичные файлы», которые
eee.ru/read/111-222/test-1234567.txt
eee.ru/read/111-222/arh.zip
Все оно конечно работает, но задача выдавать 403 при запросе вторичных файлов, если первичного нет. Т.е. по факту нужно составить RewriteCond для проверки файла наличия файла, который не равен %{REQUEST_FILENAME}. Возможно как-то слепить RewriteCond на проверку файла?
Чтобы при запросе
eee.ru/read/111-222/arh.zip
сначала проверялся
eee.ru/files/111-222.job

#прямой запрос файла
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^files/([0-9]*)-([0-9]*).job - [R=403,NC]

#запрос вторичных файлов должен быть запрещен, если .job файла нет
RewriteRule ^read/([0-9]*)-([0-9]*)/test-([0-9]*).txt$ /test.txt?install=$1-$2 [L]
RewriteRule ^read/([0-9]*)-([0-9]*)/arh.zip$ /$1-$2/all.zip [L]

Благодарен за помощь.
Пытаюсь слезть с nginx хостинга на апач. nginx более гибкий в этом плане, там все настроено и работает.
Кстати, директива RewriteCond - [AND], которая коряво, но решала бы логику - не работает почему-то на хостинге.

 , ,

doko
()

Правила IPTABLES FORWARD UDP порта Wireguard

Форум — General

Есть корпоративный Wireguard сервер. Один офис подключается к серверу через «промежуточный» сервер, на котором настроен PORTFORWARD. «Промежуточный» сервер имеет один интерфейс, с белым IP. Схема такая Клинет -> «Промежуточный» сервер порт UDP 5555 -> Сервер Wireguard 8.8.8.8 UDP 6666. «Промежуточный» сервер настройки

```iptables -A PREROUTING -t nat -p udp --dport 5555 -j DNAT --to-destination 8.8.8.8:6666
```iptables -A POSTROUTING -t nat -p udp -d 8.8.8.8 --dport 6666 -j MASQUERADE
```iptables -A FORWARD -p udp -d 8.8.8.8 --dport 6666 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
Проблема пакеты на сервер доходит, а вот клиент за "промежуточным" сервером обратных пакетов не получает.
Подскажите куда копать.

 ,

doko
()

Проблема с пакетами через нат (wireguard)

Форум — General

Приветствую. Есть железяка-роутер с урезанным линуксом. На ней поднят wireguard (интерфейс vpn0). Выход в сеть через wan0. Маскарадинг имеется для всех. Клиенты за роутером 192.168.8.0. Дефолтный 0.0.0.0/0 роут направлен в vpn0, кроме IP сервера, которые направлен в wan0. Также в правилах стоит дроп для форватинга в wan0, но это значения не имеет… не в нем дело. После поднятия интерфейса клиент WG подключается, руки жмут, все ок. При данной конфе iptables на ЛОКАЛЬНО на роутере «трафик ходит как нужно» без проблем и потери пакетов. Коротко о ПРОБЛЕМЕ с клиентами: если ответ содержит более пакета (т.е. приходят несколько пакетов с данными), то клиент за роутером получает только первый, далее отваливается по таймауту. Для примера если открыть страницу сайта очень малого размера (1 строка), то клиент вполне себе отлично его получает и отображает страницу. Как только страница сайта чуть больше одного пакета - получает только первый. Определено через tcpdump на локальной машине (нет возможности его запустить на роутере). Это же подтверждается тем, что http заголовки страницы он все же успешно получает. При этом самом роутере wget получает (vpn0) любого размера без проблем. Очевидно, что проблема с натом на роутере, либо с MTU клиента WG (1360). Пинги и другие мелкие пакеты гуляют без проблем. Некоторое уточнение: конфиг, сервер WG проверен на локальном компе - проблем нет, проблема явно не на стороне сервера. Есть другие конфиги, которые работают ровно при такой же конфе, на этом же роутере, но определить какой из них чем отличается, что этот работает, а этот нет - нет возможности.. примерно 50 на 50. Прикладываю iptables, может кто подскажет что можно подправить. Маршруты думаю смысла нет выкладывать. Спасибо!

[#] wg setconf vpn0 /dev/fd/63
[#] ip route add 80.246.XXX.XXX via 192.168.1.254
[#] ip -4 address add 10.14.0.2/16 dev vpn0
[#] ip link set mtu 1360 up dev vpn0
[#] ip route del default
[#] ip route add default dev vpn0
Chain INPUT (policy ACCEPT 1 packets, 165 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  wan0   *       192.168.1.105        192.168.1.105       
 2343  122K ACCEPT     tcp  --  br0    *       192.168.8.0/24       192.168.8.1          tcpflags: 0x3F/0x02 limit: avg 303/sec burst 5
    1    52 DROP       tcp  --  br0    *       192.168.8.0/24       192.168.8.1          tcpflags: 0x3F/0x02
    2   580 ICMP_INPUT  icmp --  *      *       0.0.0.0/0            0.0.0.0/0           
31500 7425K SERVICE_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
10034 1509K FIREWALL_INPUT  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy ACCEPT 57 packets, 3239 bytes)
 pkts bytes target     prot opt in     out     source               destination         
14303 7702K IPMASKFLT_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
14303 7702K PORTMAP_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
14303 7702K UPNP_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
14303 7702K TRGER_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
14303 7702K DMZ_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
14303 7702K FIREWALL_FORWARD  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 985 packets, 289K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain DMZ_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain FIREWALL_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      wan0    0.0.0.0/0            0.0.0.0/0           
12727 7584K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
    0     0 DROP       all  --  wan0   *       0.0.0.0/0            0.0.0.0/0           

Chain FIREWALL_INPUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
 8758 1311K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
  994  168K DROP       all  --  wan0   *       0.0.0.0/0            0.0.0.0/0           

Chain ICMP_INPUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       icmp --  eth_voip *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 DROP       icmp --  eth_tr069 *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    1    84 DROP       icmp --  wan0   *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ACCEPT     icmp --  wan0   *       0.0.0.0/0            0.0.0.0/0            icmptype 8 limit: avg 4/sec burst 6

Chain IPMASKFLT_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain PORTMAP_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain SERVICE_INPUT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
21466 5915K ACCEPT     tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 REJECT     tcp  --  wan0   *       0.0.0.0/0            0.0.0.0/0            tcp dpt:113 reject-with tcp-reset
    0     0 ACCEPT     udp  --  wan0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:5060
    0     0 ACCEPT     udp  --  wan0   *       0.0.0.0/0            0.0.0.0/0            udp dpts:7070:7079

Chain TRGER_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain UPNP_FORWARD (1 references)
 pkts bytes target     prot opt in     out     source               destination         

NAT

Chain PREROUTING (policy ACCEPT 397 packets, 35705 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DNAT       tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0            tcp dpt:53 to:162.252.172.57:53
   14   955 DNAT       udp  --  br0    *       0.0.0.0/0            0.0.0.0/0            udp dpt:53 to:162.252.172.57:53
    0     0 DNAT       icmp --  wan0   *       0.0.0.0/0            192.168.1.105        icmptype 8 to:192.168.1.105
 4078  348K SIP_PREROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 4078  348K PORTMAP_PREROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
 4078  348K UPNP_PREROUTING  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain INPUT (policy ACCEPT 142 packets, 7384 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 10 packets, 4463 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 17 packets, 5444 bytes)
 pkts bytes target     prot opt in     out     source               destination         
  174  9294 MASQUERADE  all  --  *      vpn0    0.0.0.0/0            0.0.0.0/0           
  145  7887 SNAT       all  --  *      wan0    0.0.0.0/0            0.0.0.0/0            to:192.168.1.105

Chain PORTMAP_PREROUTING (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain SIP_PREROUTING (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  wan0   *       0.0.0.0/0            0.0.0.0/0            udp dpt:5060
    0     0 ACCEPT     udp  --  wan0   *       0.0.0.0/0            0.0.0.0/0            udp dpts:7070:7079
    0     0 REDIRECT   udp  --  br0    *       0.0.0.0/0            0.0.0.0/0            udp dpt:5060 redir ports 5060

Chain UPNP_PREROUTING (1 references)
 pkts bytes target     prot opt in     out     source               destination         

 , , ,

doko
()

OpenVPN компиляция TUN.ko (bFLT)

Форум — General

Приветствую! Есть железяка ZTE. Нужен на нее драйвер TUN.

Linux version 3.14.12. gcc version 4.8.3

Работает сие чудо под linux-uclibc noMMU(!) Соответственно файлы у него формата BFLT, а не ELF.

При помощи buildroot выбрал kernel, gcc, собрал некоторые утилиты busybox. Работают нормально на железке. Теперь нужно собрать драйвер tun. И тут проблема.

buildroot menuconfig -> kernel выбираю kernel 3.14.12 При этом в настройках тулчейна buildroot как и раньше стоит: ARM, noMMU, Binary format: FLAT (он же bFLT). В конфиге исходников kernel правлю «CONFIG_TUN=m» Собираю модули, ошибок нет. При этом в таргете получается

# file /root/333/target/lib/modules/3.14.12/kernel/drivers/net/tun.ko
/root/333/target/lib/modules/3.14.12/kernel/drivers/net/tun.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), not stripped relocatable, ARM, EABI5 version 1 (SYSV), not stripped

Для примера этот же таргет, эта же сборка

# file /root/333/target/bin/busybox
/root/333/target/bin/busybox: setuid BFLT executable - version 4 ram

Т.е. модули собираются ELF, а не BFLT. Подскажите как собрать BFLT Tun. Желательно из под buildroot

 , ,

doko
()

Ubuntu, версия компилятора (минимальное ядро)

Форум — General

Лет 5 назад компилировал софтину для железке на ARM через arm-linux-gnueabi в режиме static. Она включала в себя openssl, который я тоже компил на этой же машине через arm-linux-gnueabi. До определенного времени все нормально работало, для периодических обновлений софтины использовал только установленный Ubuntu 14 или 16 (вроде даже на 20м тоже все было путем), после чего грохал систему за ненадобностью. Тулчейн использовал стандартный из репозитория Ubuntu (apt-get install gcc-arm-linux-gnueabi).

Вчера в очередной раз поднял Ubuntu 16, запилил openssl-1.0.2r, запилил софтину, закинул на железяку, а в ответ «FATAL: kernel too old». Оно и не удивительно, ядро там действительно старое:

3.0.21+ #1 PREEMPT Wed Feb 3 14:55:39 CST 2016 armv7l GNU/Linux
Но до сих пор все работало. Видимо один из компонентов Ubuntu теперь стал minimal-kernel-version выше чем 3.0.21. GLIBC 2.23 по-умолчанию. arm-linux-gnueabi-gcc ставится 5.4.0.

#ldd --version
ldd (Ubuntu GLIBC 2.23-0ubuntu11.2) 2.23
#arm-linux-gnueabi-gcc --version
arm-linux-gnueabi-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609

GLIBC до версии 2.24 как я понимаю с ядром 3.0.0 работает нормально.

Снес систему и на голую машину поставил максимальную версию, которая не выдала ошибку «kernel too old» на конечном устройсте, это arm-linux-gnueabi - gcc-linaro-6.5.0-2018.12-x86_64_arm-linux-gnueabi, взятый с releases.linaro.org - toolchain - binaries. Начиная с версии 7 получаю на конечном устройстве ошибку «kernel too old». Однако, openssl-1.0.2r на нем (toolchain 6.5.0) получается рабочим, но слишком жирным (около 6-8Мб в зависимости от параметров компиляции), против прежней версии удачно скомпилированной - около 3Мб. Для конечной железки это овердохрена. Условно «нормальный» размер бинарника выходит и с использованием gnueabi репозитория Ubuntu, но «kernel too old».

Собственно вопрос. Какой из компонентов мог обновиться и теперь имеет ограничения на минимальное ядро? И как это «проблему» побороть.

Поднимал Ubuntu от 14 до 20. Результат везде одинаков. В никсах хоть и не дуб, но знаний ровно на конкретные задачи, которые приходилось на них выполнять.

cd openssl-1.0.2r && ./Configure gcc -static -no-shared --prefix=/create_soft --cross-compile-prefix=arm-linux-gnueabi-

На голой системе

~# sudo apt-get install gcc-arm-linux-gnueabi
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  binutils binutils-arm-linux-gnueabi cpp-5-arm-linux-gnueabi cpp-arm-linux-gnueabi gcc-5-arm-linux-gnueabi gcc-5-arm-linux-gnueabi-base gcc-5-cross-base libasan2-armel-cross libatomic1-armel-cross libc6-armel-cross
  libc6-dev-armel-cross libcc1-0 libgcc-5-dev-armel-cross libgcc1-armel-cross libgomp1-armel-cross libisl15 libmpc3 libmpfr4 libstdc++6-armel-cross libubsan0-armel-cross linux-libc-dev-armel-cross
Suggested packages:
  binutils-doc gcc-5-locales cpp-doc gcc-5-multilib-arm-linux-gnueabi gcc-5-doc libgcc1-dbg-armel-cross libgomp1-dbg-armel-cross libitm1-dbg-armel-cross libatomic1-dbg-armel-cross libasan2-dbg-armel-cross liblsan0-dbg-armel-cross
  libtsan0-dbg-armel-cross libubsan0-dbg-armel-cross libcilkrts5-dbg-armel-cross libmpx0-dbg-armel-cross libquadmath0-dbg-armel-cross make manpages-dev autoconf automake libtool flex bison gdb-arm-linux-gnueabi gcc-doc
The following NEW packages will be installed:
  binutils binutils-arm-linux-gnueabi cpp-5-arm-linux-gnueabi cpp-arm-linux-gnueabi gcc-5-arm-linux-gnueabi gcc-5-arm-linux-gnueabi-base gcc-5-cross-base gcc-arm-linux-gnueabi libasan2-armel-cross libatomic1-armel-cross
  libc6-armel-cross libc6-dev-armel-cross libcc1-0 libgcc-5-dev-armel-cross libgcc1-armel-cross libgomp1-armel-cross libisl15 libmpc3 libmpfr4 libstdc++6-armel-cross libubsan0-armel-cross linux-libc-dev-armel-cross
0 upgraded, 22 newly installed, 0 to remove and 1 not upgraded.
Need to get 22.2 MB of archives.
After this operation, 78.4 MB of additional disk space will be used.
Do you want to continue? [Y/n]

......................
Processing triggers for libc-bin (2.23-0ubuntu11.2) ...
Setting up libmpfr4:amd64 (3.1.4-1) ...
Setting up libmpc3:amd64 (1.0.3-1) ...
Setting up binutils (2.26.1-1ubuntu1~16.04.8) ...
Setting up gcc-5-arm-linux-gnueabi-base:amd64 (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libisl15:amd64 (0.16.1-1) ...
Setting up cpp-5-arm-linux-gnueabi (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up cpp-arm-linux-gnueabi (4:5.3.1-1ubuntu1) ...
Setting up libcc1-0:amd64 (5.4.0-6ubuntu1~16.04.12) ...
Setting up binutils-arm-linux-gnueabi (2.26.1-1ubuntu1~16.04.8) ...
Setting up gcc-5-cross-base (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libc6-armel-cross (2.23-0ubuntu3cross1) ...
Setting up libgcc1-armel-cross (1:5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libgomp1-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libatomic1-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libasan2-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libstdc++6-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libubsan0-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up libgcc-5-dev-armel-cross (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up gcc-5-arm-linux-gnueabi (5.4.0-6ubuntu1~16.04.9cross1) ...
Setting up gcc-arm-linux-gnueabi (4:5.3.1-1ubuntu1) ...
Setting up linux-libc-dev-armel-cross (4.4.0-18.34cross1) ...
Setting up libc6-dev-armel-cross (2.23-0ubuntu3cross1) ...
Processing triggers for libc-bin (2.23-0ubuntu11.2) ...
Может у кого-то появится мысль.

Ps вдаваться в подробности что там за софтина - смысла нет (модифицированный исходник очень популярной консольной софтины под linux), т.к. скомпилированный по конфигу выше бинарник выдает «kernel too old». Последний раз компилировал удачно на голой Ubuntu эту сборку месяцев 7-9 назад.

Дополнил: Проблема не в том чтобы получить openssl (static) для целевого ядра, а найти решение как «откатить» gcc-arm-linux-gnueabi и/или или его зависимости, чтобы компилировать не получая «kernel too old», в том числе и для бинарника openssl. Openssl тут приведен вообще исключительно ради реального примера проблемы.

 , , , ,

doko
()

Hyper-V. Удалил случайно snapshot

Форум — General

Привет! Есть линукс (Ubu) машина на Hyper-V Server 2008 R2. (SSD диск) На машине компилировал исходники на C++. Так получилось, что на ней отвалился DHCP... и вместо кнопки «Перезагрузить» я случайно нажал «Вернуть» (snapshot). На линуксе были 3 самописных исходника, которые очень жалко, а восстанавливать их займет не меньше месяца. Про бэкапы (важных файлов) - спасибо, знаю, но их нет. Прогнал машину рекавери софтом (3 штуки) - ничего не найдено дельного, вроде файлов снапшота. Поделитесь мыслями на этот счет. Спасибо! Дополню свой вопрос: Был ли у кого опыт прикручивания обратно снапшота к вируалке? При условии, что файл снапшота и кусок дика снапшота восстановлены через рекавери софт. В конфиге машины есть список снапшотов, возможно его можно просто добавить обратно ручками?

 , ,

doko
()

OpenVPN - TUN.ko. Компиляция

Форум — General

Добрый день. Имею железяку huawei 4G роутер (портативный) и желание поднять OPENVPN на ней.

Сам OPENVPN скомпилирован и работает - проблем нет. С Tun.ko возникли проблемы. В ядре его (как обычно) нет. Пришлось компилировать. Железяка

/system/bin/busybox uname -a
Linux localhost 3.4.5 armv7l #1 PREEMPT Tue Apr 10 14:53:30 CST 2018 armv7l GNU/Linux
echo `uname -m` `cat /proc/version`
Linux version 3.4.5 (wangxu@SIA1000027021) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 PREEMPT Tue Jun 21 18:53:30 CST 2016

Исходников ядра конечно же нет. Были взяты Kernel linux-3.4.5 и 4.6.x-google_prerelease_toolchain (arm-linux-androideabi-4.6)

Компилировал ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- O=build KERNELRELEASE=3.4.5 На выходе получил Tun.ko, залил на железо.

#insmod /online/tun.ko
#lsmod | grep tun
tun 13831 0 - Live 0xbf044000
#dmesg
....
<6>[000447604ms] tun: Universal TUN/TAP device driver, 1.6
<6>[000447604ms] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
Вроде как все хорошо.

Добавил

#mkdir -p /dev/net
#/system/bin/busybox mknod /dev/net/tun c 10 200
#chmod 600 /dev/net/tun
Итог 
#ls /dev | grep tun
tun
#ls /dev/net | grep tun
tun
Далее начинаются непонятки. При любом чихе в сторону TUN
#openvpn --mktun --dev tap0
#cat /dev/net/tun
#openvpn --verb 8 --config /online/vps_client.ovpn
... без разницы, железка уходит в ребут. Из очевидных логов только:
<6>[000447604ms] tun: Universal TUN/TAP device driver, 1.6
<6>[000447604ms] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
----Тут любое касание tun----
<1>[000450546ms] Unable to handle kernel NULL pointer dereference at virtual address 00000010
<1>[000450554ms] pgd = c127c000
<1>[000450558ms] [00000010] *pgd=00000000
<0>[000450561ms] Internal error: Oops: 805 [#1] PREEMPT ARM
<4>[000450566ms] Modules linked in: tun dhd(O) ctf(PO)
<4>[000450570ms] CPU: 0    Tainted: P           O  (3.4.5 #1)
<4>[000450576ms] PC is at tun_chr_open+0x34/0x88 [tun]
<4>[000450580ms] LR is at misc_open+0xac/0x1b0
<4>[000450584ms] pc : [<bf044564>]    lr : [<c01cc0cc>]    psr: 60000013
<4>[000450584ms] sp : c103be08  ip : 00000000  fp : b6f4dded
<4>[000450595ms] r10: 00000000  r9 : 00000000  r8 : bf046b08
<4>[000450601ms] r7 : c07f0ce0  r6 : c218aae0  r5 : c185c900  r4 : c185c900
<4>[000450607ms] r3 : 00000010  r2 : c103a008  r1 : c103be08  r0 : 00000000
<4>[000450613ms] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
<4>[000450620ms] Control: 18c53c7d  Table: 55d7c059  DAC: 00000015
<4>[000450626ms] 
...................
<4>[000451313ms] [<bf044564>] (tun_chr_open+0x34/0x88 [tun]) from [<c01cc0cc>] (misc_open+0xac/0x1b0)
<4>[000451322ms] [<c01cc0cc>] (misc_open+0xac/0x1b0) from [<c00b9708>] (chrdev_open+0xb8/0x19c)
<4>[000451330ms] [<c00b9708>] (chrdev_open+0xb8/0x19c) from [<c00b3f84>] (__dentry_open.isra.14+0x1b8/0x2a0)
<4>[000451339ms] [<c00b3f84>] (__dentry_open.isra.14+0x1b8/0x2a0) from [<c00c2f8c>] (do_last.isra.34+0x31c/0x6d0)
<4>[000451349ms] [<c00c2f8c>] (do_last.isra.34+0x31c/0x6d0) from [<c00c351c>] (path_openat+0xb8/0x390)
<4>[000451358ms] [<c00c351c>] (path_openat+0xb8/0x390) from [<c00c38e0>] (do_filp_open+0x2c/0x80)
<4>[000451366ms] [<c00c38e0>] (do_filp_open+0x2c/0x80) from [<c00b4d6c>] (do_sys_open+0xe4/0x180)
<4>[000451374ms] [<c00b4d6c>] (do_sys_open+0xe4/0x180) from [<c0011040>] (ret_fast_syscall+0x0/0x30)
<0>[000451383ms] Code: 0a000014 e1a0100d e3a00000 e3c12d7f (e5830000) 
<4>[000451392ms] ---[ end trace 610457ad83bc2421 ]---
<4>[000451397ms] [dump]: <system_error> [0xe1b2d3]

Буду признателен за любой пинок (кроме мата и оскорблений) в сторону места, где зарыта собака. PS С линкусом работал крайне мало, с компиляцией ядра практически не работал. Так что прошу сильно не бить ногами по почкам, печени и другим жизненно важным внутренним органам. Спасибо.

 , , , ,

doko
()

Разбить файл на части и сохранить их (sed,grep)

Форум — General

Добрый день! Я не сторонник просьб о помощи, но уже окончательно запутался. В линуксе не силен, по мере способностей =) Задача. Есть такой файл.

-----------------------------29995809218093749221856446032^M
Content-Disposition: form-data; name="..."; filename="..."^M
Content-Type: application/octet-stream^M
^M    <--------- headers end with empty line
file contents
file contents
file contents
^M    <--------- extra empty line
-----------------------------29995809218093749221856446032^M
-----------------------------32222222323423432453253453245^M
Content-Disposition: form-data; name="..."; filename="..."^M
Content-Type: application/octet-stream^M
^M    <--------- headers end with empty line
file contents
file contents
file contents
^M    <--------- extra empty line
-----------------------------32222222323423432453253453245--^M
..... и так далее
Это формат POST файла web-сервера. Задача вырезать контент от headers до extra и сохранить в отдельный файл с названием filename (точнее filename="->тут имя файла<-"), для каждого такого блока файла. Сразу скажу, что линукс порезанный и некоторых опций может не быть у утилит. Perl`a нет. Помогите, люди добрые =) PS Проблема именно с построением логики.. т.е. если я вырезаю нужную мне чаcть, то не знаю как отдельно вытащить название файла.. как-то так. Короче, знаний маловато у меня в bash`e Файл всегда начинается с
-----------------------------ЦИФРО_БУКВЫ_АНГЛИЙСКИЕ^M

 ,

doko
()

RSS подписка на новые темы