простой скрипт. что я не так делаю?

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-17 10:24:23

написал такой скрипт:

Код: Выделить всё

[f0s@router] /root/bin/> cat uploads.sh
#!/bin/sh
cd /tmp/uploads
if [ -e *.* ]
then
ftp -u ftp://username:password@artishok.artpromcompany.ru/ *.*
cd /tmp/uploads
rm -rf /tmp/uploads
mkdir /tmp/uploads
chmod 777 /tmp/uploads
/usr/local/bin/lynx -source http://artishok.artpromcompany.ru/modules/warehouse/exchange.php
else
fi
exit 0
[f0s@router] /root/bin/>

скрипт должен смотреть в папку /tmp/uploads, и если там есть файлы, то заливать их на фтп. в первый раз все ок отработало. поставил скрипт в крон на каждые 5 минут. сомтрю, файлы не передабтся.. запускаю скрипт, смотрю:

Код: Выделить всё

[f0s@router] /root/bin/> ./uploads.sh
[: Z00089.jpg: unexpected operator
при этом вот что в папке /tmp/uploads

Код: Выделить всё

[f0s@router] /root/bin/> ll /tmp/uploads/
total 142
-rw-r--r--  1 lukov  wheel   42770 16 июл 17:54 Z00089.jpg
-rw-r--r--  1 lukov  wheel  101506 17 июл 10:49 catalogue_objects.csv
[f0s@router] /root/bin/>
если удалить джпегу, то вроде ок:

Код: Выделить всё

[f0s@router] /root/bin/> [f0s@router] /root/bin/> ./uploads.sh
Connected to artishok.artpromcompany.ru.
220 ProFTPD 1.3.0 Server ready.
331 Password required for username.
230 User username logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Type set to I
local: catalogue_objects.csv remote: catalogue_objects.csv
229 Entering Extended Passive Mode (|||35072|)
150 Opening BINARY mode data connection for catalogue_objects.csv
100% |*************************************|    99 KB    2.60 MB/s    00:00 ETA
226 Transfer complete.
101506 bytes sent in 00:00 (1.56 MB/s)
[f0s@router] /root/bin/>
и потом залить джпегу отдельно оставить и запусить скрипт - то тоже ок:

Код: Выделить всё

[f0s@router] /root/bin/> [f0s@router] /root/bin/> ./uploads.sh
Connected to artishok.artpromcompany.ru.
220 ProFTPD 1.3.0 Server ready.
331 Password required for username.
230 User username logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
200 Type set to I
local: Z00089.jpg remote: Z00089.jpg
229 Entering Extended Passive Mode (|||35064|)
150 Opening BINARY mode data connection for Z00089.jpg
100% |*************************************| 42770     335.30 KB/s    00:00 ETA
226 Transfer complete.
42770 bytes sent in 00:00 (288.94 KB/s)
[f0s@router] /root/bin/>

уж не знаю в чем и глюк.. причем иногда нормлаьно все работает...
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение zingel » 2008-07-17 11:15:28

смотреть в лог крона...и запустить скрипт в дебаге

Код: Выделить всё

#!/bin/sh -xv
Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-17 11:25:59

да крон-то фиг с ним. я ж говорю, когда запускаю просто скрипт, он выдает:

Код: Выделить всё

[f0s@router] /root/bin/> ./uploads.sh
[: Z00089.jpg: unexpected operator
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение zingel » 2008-07-17 11:33:32

Z301171463546 - можно пожертвовать мне денег

Аватара пользователя
salvator
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-04-01 12:18:59
Откуда: Kiev, Ukraine

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение salvator » 2008-07-17 12:04:08

Код: Выделить всё

if [ -e *.* ]
здесь по ходу валится. имена файлов нормальные?

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-17 13:12:38

Код: Выделить всё

[f0s@router] /root/bin/> ./uploads.sh
#!/bin/sh -xv
cd /tmp/uploads
+ cd /tmp/uploads
if [ -e * ]
then
ftp -u ftp://username:password@artishok.artpromcompany.ru/ *.*
cd /tmp/uploads
rm -rf /tmp/uploads
mkdir /tmp/uploads
chmod 777 /tmp/uploads
/usr/local/bin/lynx -source http://artishok.artpromcompany.ru/modules/warehouse/exchange.php
else
fi
+ [ -e Z00089.jpg catalogue_objects.csv ]
[: Z00089.jpg: unexpected operator
exit 0
+ exit 0
[f0s@router] /root/bin/>
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-17 15:33:31

ну вот еще немного видоизменил скрипт таким образом:

Код: Выделить всё

#!/bin/sh -xv
cd /tmp/uploads
TEMP=`ls -lA | cut -d" " -f2`
if [ $TEMP ne "0" ]
then
ftp -u ftp://username:password@artishok.artpromcompany.ru/ *.*
cd /tmp/uploads
rm -rf /tmp/uploads
mkdir /tmp/uploads
chmod 777 /tmp/uploads
/usr/local/bin/lynx -source http://artishok.artpromcompany.ru/modules/warehouse/exchange.php
else
mkdir /tmp/qqq
fi
exit 0
судя по отладке, скрипт идет на else, пропуская then

Код: Выделить всё

[f0s@router] /root/bin/> [f0s@router] /root/bin/> ./uploads.sh
#!/bin/sh -xv
cd /tmp/uploads
+ cd /tmp/uploads
TEMP=`ls -lA | cut -d" " -f2`
+ ls -lA
+ cut -d  -f2
+ TEMP=142
if [ $TEMP ne "0" ]
then
ftp -u ftp://username:password@artishok.artpromcompany.ru/ *.*
cd /tmp/uploads
rm -rf /tmp/uploads
mkdir /tmp/uploads
chmod 777 /tmp/uploads
/usr/local/bin/lynx -source http://artishok.artpromcompany.ru/modules/warehouse/exchange.php
else
mkdir /tmp/qqq
fi
+ [ 142 ne 0 ]
[: 142: unexpected operator
+ mkdir /tmp/qqq
exit 0
+ exit 0
[f0s@router] /root/bin/>
и тоже, как вы видите, выдает unexpected operator
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
salvator
мл. сержант
Сообщения: 88
Зарегистрирован: 2008-04-01 12:18:59
Откуда: Kiev, Ukraine

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение salvator » 2008-07-17 16:03:31

дайте вывод

Код: Выделить всё

ls /tmp/uploads

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-17 16:58:48

чуть выше давал уже.. но повторюсь:

Код: Выделить всё

ls /tmp/uploads
Z00089.jpg              catalogue_objects.csv
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35411
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение Alex Keda » 2008-07-18 1:20:37

Убей их всех! Бог потом рассортирует...

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-18 9:28:28

окончательный вариант. может кому пригодится:

Код: Выделить всё

#!/bin/sh
cd /tmp/uploads
if [ "`ls -lA | grep total |cut -d" " -f2`" != "0" ]
then
ftp -u ftp://username:password@artishok.artpromcompany.ru/ *.*
cd /tmp/uploads
rm -rf /tmp/uploads
mkdir /tmp/uploads
chmod 777 /tmp/uploads
/usr/local/bin/lynx -source http://artishok.artpromcompany.ru/modules/warehouse/exchange.php
else
echo NO_FILES
fi
exit 0
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
squid
лейтенант
Сообщения: 683
Зарегистрирован: 2007-05-25 11:32:23
Откуда: Украина, Киев
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение squid » 2008-07-18 10:19:22

может тему переименовать по описанию скрипта или перенести в скрипты ?
хех..

Аватара пользователя
f0s
ст. лейтенант
Сообщения: 1082
Зарегистрирован: 2007-03-13 18:43:31
Откуда: Санкт-Петербург
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение f0s » 2008-07-18 10:25:59

кстати, может кто знает как дополнить скрипт так, чтобы он еще перед заливкой файлов на фтп удалял оттуда файлы, дата создания которых старше 5 дней?
named, named, what is my TTL value?..

[FidoNet 2:550/2 && 2:5030/4441]

Аватара пользователя
Za...
мл. сержант
Сообщения: 105
Зарегистрирован: 2006-08-18 14:18:15
Откуда: Север России
Контактная информация:

Re: простой скрипт. что я не так делаю?

Непрочитанное сообщение Za... » 2008-07-18 12:04:55

Для перенапровления команд в ftp используем данную конструкцию

Код: Выделить всё

echo "
ls
dir " | ftp ftp://username:password@artishok.artpromcompany.ru/
Стою в очереди За... булкой и кефиром