LINUX.ORG.RU

Почему не работает скрипт?

 


0

1
#!/bin/sh

mkdir /usr/bookprofile;
mkdir /usr/bookprofile/alex;
mkdir /usr/bookprofile/gal;
cp /ext2fs/root/crengine /usr/bookprofile/alex;
cp /ext2fs/root/crengine /usr/bookprofile/gal;
touch /usr/bookprofile/alex.lock;

cp -r /usr/bookprofile /home/out;

ls -laR / > /home/ls.txt;

Файл ls.txt создается, но показывает, что /usr/bookprofile даже не создается.

P.S. Я под рутом на устройстве.
P.P.S. mkdir и touch есть. Через busybox, но есть.

★★★

Последнее исправление: AlexCones (всего исправлений: 1)
Ответ на: комментарий от lazyklimm
#!/bin/sh

# mkdir /usr/bookprofile;
mkdir -p /usr/bookprofile/alex;
mkdir -p /usr/bookprofile/gal;
cp /ext2fs/root/crengine /usr/bookprofile/alex;
cp /ext2fs/root/crengine /usr/bookprofile/gal;
touch /usr/bookprofile/alex.lock;

cp -r /usr/bookprofile /home/out;

ls -laR / > /home/ls.txt;

Все равно не создается.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

В log.txt выбет выхлоп всех команд, (в т.ч. тех, которые могли бы завершиться с ошибкой).
Вы же не проверяете exit code всех команд, и флаг -e не включён. Следовательно, после завершившегося с ошибкой mkdir всё равно может быть выполнен ls -laR.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Спасибо. Оказалось, что это примаунтенный на ридонли раздел.

+ mkdir -p /usr/bookprofile/alex
mkdir: cannot create directory '/usr/bookprofile/': Read-only file system
+ mkdir -p /usr/bookprofile/gal
mkdir: cannot create directory '/usr/bookprofile/': Read-only file system
+ cp /ext2fs/root/crengine /usr/bookprofile/alex
cp: omitting directory '/ext2fs/root/crengine'
+ cp /ext2fs/root/crengine /usr/bookprofile/gal
cp: omitting directory '/ext2fs/root/crengine'
+ touch /usr/bookprofile/alex.lock
touch: /usr/bookprofile/alex.lock: No such file or directory
+ cp -r /usr/bookprofile /home/out
cp: cannot stat '/usr/bookprofile': No such file or directory
+ ls -laR /
ls: /proc/178/exe: cannot read link (not a symlink?)
ls: /proc/178/task/178/exe: cannot read link (not a symlink?)
ls: /proc/184/exe: cannot read link (not a symlink?)
ls: /proc/184/task/184/exe: cannot read link (not a symlink?)
ls: /proc/2/exe: cannot read link (not a symlink?)
ls: /proc/2/task/2/exe: cannot read link (not a symlink?)
ls: /proc/217/exe: cannot read link (not a symlink?)
ls: /proc/217/task/217/exe: cannot read link (not a symlink?)
ls: /proc/284/exe: cannot read link (not a symlink?)
ls: /proc/284/task/284/exe: cannot read link (not a symlink?)
ls: /proc/3/exe: cannot read link (not a symlink?)
ls: /proc/3/task/3/exe: cannot read link (not a symlink?)
ls: /proc/313/cwd: cannot read link (not a symlink?)
ls: /proc/313/exe: cannot read link (not a symlink?)
ls: /proc/313/root: cannot read link (not a symlink?)
ls: /proc/313/task/313/cwd: cannot read link (not a symlink?)
ls: /proc/313/task/313/exe: cannot read link (not a symlink?)
ls: /proc/313/task/313/root: cannot read link (not a symlink?)
ls: /proc/4/exe: cannot read link (not a symlink?)
ls: /proc/4/task/4/exe: cannot read link (not a symlink?)
ls: /proc/5/exe: cannot read link (not a symlink?)
ls: /proc/5/task/5/exe: cannot read link (not a symlink?)
ls: /proc/6/exe: cannot read link (not a symlink?)
ls: /proc/6/task/6/exe: cannot read link (not a symlink?)
ls: /proc/63/exe: cannot read link (not a symlink?)
ls: /proc/63/task/63/exe: cannot read link (not a symlink?)
ls: /proc/632/fd/4: cannot read link (not a symlink?)
ls: /proc/632/task/632/fd/4: cannot read link (not a symlink?)
ls: /proc/64/exe: cannot read link (not a symlink?)
ls: /proc/64/task/64/exe: cannot read link (not a symlink?)
ls: /proc/78/exe: cannot read link (not a symlink?)
ls: /proc/78/task/78/exe: cannot read link (not a symlink?)
ls: /proc/79/exe: cannot read link (not a symlink?)
ls: /proc/79/task/79/exe: cannot read link (not a symlink?)
ls: /proc/80/exe: cannot read link (not a symlink?)
ls: /proc/80/task/80/exe: cannot read link (not a symlink?)
ls: /proc/81/exe: cannot read link (not a symlink?)
ls: /proc/81/task/81/exe: cannot read link (not a symlink?)

Возникает вопрос - как мне выяснить, куда можно писать? Кроме как пробовать писать во всевозможные места? В хомяк писать не хочу, там и так загажено.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Для начала нужно почитать /proc/mounts в поисках файловых систем, смонтированных не в ro. На них посмотреть права на mountpoint и поддиректории (можно при помощи find, если он там есть).

AITap ★★★★★
()
Ответ на: комментарий от AITap
rootfs / rootfs rw 0 0
/dev/root / cramfs ro 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /dev tmpfs rw 0 0
nodev /var tmpfs rw 0 0
tmpfs /var/etc tmpfs rw 0 0
tmpfs /etc tmpfs rw 0 0
tmpfs /jffs2fs tmpfs rw 0 0
ramfs /tmp tmpfs rw 0 0
/dev/mtdblock3 /ext2fs cramfs ro 0 0
/dev/mtdblock5 /jffs2fs jffs2 rw 0 0
/dev/mtdblock6 /home vfat rw,noatime,fmask=0000,dmask=0000,codepage=cp437,iocharset=utf8,shortname=mixed 0 0
AlexCones ★★★
() автор топика
Ответ на: комментарий от AITap
Filesystem           1k-blocks      Used Available Use% Mounted on
tmpfs                     2048       440      1608  21% /jffs2fs
drwxr-xr-x    3 root     root            0 Jan  1  1970 .
drwxr-xr-x    1 root     root          424 Jan  1  1970 ..
-rw-r--r--    1 root     root          197 Aug 12  2008 cdma-connect
-rw-r--r--    1 root     root           60 Aug 12  2008 cdma-disconnect
-rw-r--r--    1 root     root          253 Aug 12  2008 cdma-options
-rw-------    1 root     root           94 Aug 12  2008 chap-secrets
-rw-------    1 root     root           94 Aug 12  2008 chap-secrets-gprs
-rw-r--r--    1 root     root         1126 Apr 16 18:53 cr3-fb2.ini
-rw-r--r--    1 root     root            2 Feb 24 20:51 dateformat
-rw-r--r--    1 root     root           35 Feb 15 22:34 fontlib.conf
-rw-r--r--    1 root     root          219 Aug 12  2008 gprs-connect
-rw-r--r--    1 root     root          184 Jan 21  2009 gprs-disconnect
-rw-r--r--    1 root     root          180 Jan 21  2009 gprs-options
-rw-r--r--    1 root     root            8 Aug 14  2009 mp3.dat
-rw-r--r--    1 root     root           12 Aug 12  2008 profile
--wxr-Sr-T    1 root     root           24 Apr 13 21:04 system_profile

И да, существует вероятность, что при старте что-то может распаковываться из tarбола.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

drwxr-xr-x 3 root root 0 Jan 1 1970 .

Я так понимаю, пользовательские скрипты работают вовсе не от root'а?

Не вижу других вариантов, кроме /home.

AITap ★★★★★
()
Ответ на: комментарий от AITap

Я так понимаю, пользовательские скрипты работают вовсе не от root'а?

me: whoami
it: root
AlexCones ★★★
() автор топика
Ответ на: комментарий от AITap

Делаю в хомяке, лог ругается:

+ cp /ext2fs/root/crengine /home/Служебная информация/profiles/alex
cp: omitting directory '/ext2fs/root/crengine'
+ cp /ext2fs/root/crengine /home/Служебная информация/profiles/gal
cp: omitting directory '/ext2fs/root/crengine'
+ touch /home/Служебная информация/profiles/alex.lock

Файлы не копируются. Что ему не так?

AlexCones ★★★
() автор топика
Ответ на: комментарий от AITap

Умышленно. Все настройки coolreader хранятся в «корне» ./crengine. В каталогах внутри - словари/фонты/etc. Мне нужны только пользовательские настройки.

AlexCones ★★★
() автор топика
Ответ на: комментарий от AITap

А оно так не умеет? Тады ой. Мне их что, по одному вытаскивать?

AlexCones ★★★
() автор топика
Ответ на: комментарий от AlexCones

Файлы, не являющиеся каталогами.

Тогда, наверное, нужно указывать на содержимое директории (.../crengine/*), а не на саму директорию (.../crengine)?

AITap ★★★★★
()
Ответ на: комментарий от AITap

Блин! Спасибо, пора мне завязывать с веществами.

AlexCones ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.