[ОТВЕТИТЬ]
28.08.2014 14:22
baggio
 
Итак что имеем:
1.nas4free - full
Цитата:
Version 9.2.0.1 - Shigawire (revision 972)
Build date Mon Apr 28 02:43:01 CEST 2014
Platform OS FreeBSD 9.2-RELEASE-p4 (kern.osreldate: 902001)
Platform x64-full on Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz
2. имеем установленный p7zip
pkg_add -r p7zip
3. имеем вывод setenv под рутом в ssh
Цитата:
login as: root
root@192.168.0.5's password:
Last login: Thu Aug 28 13:20:48 2014 from 172.27.192.6
Welcome to NAS4Free!
nas4free: ~ # setenv
USER=root
LOGNAME=root
HOME=/root
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
TERM=xterm
UNISON=/mnt
BLOCKSIZE=K
SHELL=/bin/tcsh
SSH_CLIENT=172.27.192.6 2694 22
SSH_CONNECTION=172.27.192.6 2694 192.168.0.5 22
SSH_TTY=/dev/pts/1
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=1
PWD=/root
GROUP=wheel
HOST=nas4free.local
REMOTEHOST=172.27.192.6
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
PAGER=more
EDITOR=nano
nas4free: ~ #
3. имеем скрипт
Цитата:
7za a -mx9 -ssc /mnt/200GB/BackUp/1cNAME.7z @/mnt/200GB/BackUp/listfile.txt
4. запускаем скрипт из SSH под рутом... открываем - все кодировки и имена файлов написанные по русски в порядке...
5. создаем задание в cron
Цитата:
#!/bin/sh
setenv LANG en_US.UTF-8
setenv LANGUAGE en_US.UTF-8
setenv LC_ALL en_US.UTF-8

NAME=`/bin/date '+%Y%m%d%hh%mm'`
7za a -mx9 -ssc /mnt/200GB/BackUp/1cNAME.7z @/mnt/200GB/BackUp/listfile.txt
find /mnt/200GB/BackUp -name "*.7z" -mtime +7 -delete
выполняем... оно выполняется от root... имеем штрикозяблы...

Вопрос что я делаю не так?
Миниатюры
Нажмите на изображение для увеличения
Название: глюки Na4free.jpg
Просмотров: 507
Размер:	319.4 Кб
ID:	3946  
28.08.2014 15:10
OlegON
 
Я бы на твоем месте сначала посмотрел, что все диски в ZFS, если нет - в пень эту бздю, лучше Линукс поставь.
Советовать трудно, я не знаю фряху, но, во-первых, я бы не setenv попробовал, а export, вроде как это общебашевое.
Во-вторых, не знаю, как во фряхе, но в солярке и линуксе есть env, которая как раз переменные окружения и выводит. Можно сделать в кроне env >/home/user/file и сравнить с тем, что у тебя получается из ком.строки, когда все работает.

Но основное и самое главное - в самбе 1251 не должно отражаться на том, как файлы записываются в файловую систему. Предлагаю копать в этом направлении, иначе грабли еще только начинаются. У меня ZFS, самба, работа с виндой. Залез в свой древний конфиг, там
Цитата:
dos charset = CP866
unix charset = UTF-8
display charset = UTF-8
28.08.2014 15:33
baggio
 
Цитата:
OlegON Я бы на твоем месте сначала посмотрел, что все диски в ZFS, если нет - в пень эту бздю, лучше Линукс поставь.
да там всего понемножку... это тебя волновать не должно...
но те пути которые используются.. да на zfs... хотя именно её не интуитивные снапшоты меня и подвигли на обычный бэкап... но это тема для отдельного холивара...

Цитата:
OlegON Советовать трудно, я не знаю фряху, но, во-первых, я бы не setenv попробовал, а export, вроде как это общебашевое.
nas4free: ~ # export
export: Command not found.

Цитата:
OlegON Во-вторых, не знаю, как во фряхе, но в солярке и линуксе есть env, которая как раз переменные окружения и выводит. Можно сделать в кроне env >/home/user/file и сравнить с тем, что у тебя получается из ком.строки, когда все работает.
вывод env ssh под root
Цитата:
nas4free: ~ # env
USER=root
LOGNAME=root
HOME=/root
MAIL=/var/mail/root
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin
TERM=xterm
UNISON=/mnt
BLOCKSIZE=K
SHELL=/bin/tcsh
SSH_CLIENT=172.27.192.6 3419 22
SSH_CONNECTION=172.27.192.6 3419 192.168.0.5 22
SSH_TTY=/dev/pts/2
HOSTTYPE=FreeBSD
VENDOR=amd
OSTYPE=FreeBSD
MACHTYPE=x86_64
SHLVL=1
PWD=/root
GROUP=wheel
HOST=nas4free.local
REMOTEHOST=172.27.192.6
LANG=en_US.UTF-8
LANGUAGE=en_US.UTF-8
LC_ALL=en_US.UTF-8
PAGER=more
EDITOR=nano
скрипт
Цитата:
#!/bin/sh
setenv >/mnt/200GB/BackUp/log1.txt
env >/mnt/200GB/BackUp/log2.txt

env LANG en_US.UTF-8 >/mnt/200GB/BackUp/log3.txt
env LANGUAGE en_US.UTF-8 >/mnt/200GB/BackUp/log4.txt
env LC_ALL en_US.UTF-8 >/mnt/200GB/BackUp/log5.txt
setenv LANG en_US.UTF-8 >/mnt/200GB/BackUp/log6.txt
setenv LANGUAGE en_US.UTF-8 >/mnt/200GB/BackUp/log7.txt
setenv LC_ALL en_US.UTF-8 >/mnt/200GB/BackUp/log8.txt

NAME=`/bin/date '+%Y%m%d%hh%mm'`>/mnt/200GB/BackUp/log9.txt
7za a -mx9 -ssc /mnt/200GB/BackUp/1cNAME.7z @/mnt/200GB/BackUp/listfile.txt >/mnt/200GB/BackUp/log10.txt
find /mnt/200GB/BackUp -name "*.7z" -mtime +7 -delete >/mnt/200GB/BackUp/log11.txt
вывод по всем командам во вложении
там только два файла с данными:
log2.txt
Цитата:
SERVER_PORT=80
SERVER_ADDR=192.168.0.5
HTTP_HOST=192.168.0.5
LANG=en_US
HTTP_ACCEPT_LANGUAGE=ru-RU
HTTP_CONTENT_LENGTH=264
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
DOCUMENT_ROOT=/usr/local/www
HTTP_REFERER=http://192.168.0.5/system_cron_edit.php
HTTP_CONNECTION=Keep-Alive
SCRIPT_NAME=/system_cron_edit.php
REDIRECT_STATUS=200
HTTP_USER_AGENT=Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
PWD=/usr/local/www
HTTP_CACHE_CONTROL=no-cache
REQUEST_METHOD=POST
SERVER_SOFTWARE=lighttpd/1.4.35
SERVER_NAME=192.168.0.5
HTTP_DNT=1
SERVER_PROTOCOL=HTTP/1.1
CONTENT_LENGTH=264
HTTP_ACCEPT_ENCODING=gzip, deflate
CONTENT_TYPE=application/x-www-form-urlencoded
REQUEST_URI=/system_cron_edit.php
GATEWAY_INTERFACE=CGI/1.1
HTTP_COOKIE=PHPSESSID=9871658220604d1a789e0ed202187d1c
REMOTE_PORT=4504
REMOTE_ADDR=172.27.192.6
SCRIPT_FILENAME=/usr/local/www/system_cron_edit.php
HTTP_ACCEPT=text/html, application/xhtml+xml, */*
и
Цитата:
7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=C,Utf16=off,HugeFiles=on,1 CPU)

Scanning

Updating archive /mnt/200GB/BackUp/1cNAME.7z

Compressing Заказы на местах Дашки/ЛИЦЕНЗИЯ/IMAG0391.jpg
Compressing Заказы на местах Дашки/ЛИЦЕНЗИЯ/IMAG0392.jpg
Compressing Заказы на местах Сударушка/Белая дача Дашки.doc
Compressing Заказы на местах Дашки/О запрете АЛКОГОЛЯ .doc
и. т.д.

Цитата:
OlegON Но основное и самое главное - в самбе 1251 не должно отражаться на том, как файлы записываются в файловую систему. Предлагаю копать в этом направлении, иначе грабли еще только начинаются. У меня ZFS, самба, работа с виндой. Залез в свой древний конфиг, там
не вижу проблем... насколько я понял в настройках самбы стоит unix - UTF-8... и я пытаюсь понять почему скрипт отработавших по ssh по root сохраняет имена файлов нармально а из под cron нет!
Вложения
Тип файла: zip lognas4free.zip (5.6 Кб, 152 просмотров)
28.08.2014 15:37
vdm
 
Есть подозрение что setenv там не отрабатывает.
Потому что это внутренняя команда шелла csh.
А в скрипте для крона указан /bin/sh, в котором переменные окружения export-ить нужно.
28.08.2014 15:38
baggio
 
таааак....
из консоли в SSH...

Цитата:
7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
p7zip Version 9.20 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,1 CPU)

Scanning

Updating archive /mnt/200GB/BackUp/1cNAME.7z

Compressing Заказы на местах Дашки/ЛИЦЕНЗИЯ/IMAG0391.jpg
Compressing Заказы на местах Дашки/ЛИЦЕНЗИЯ/IMAG0392.jpg
Compressing Заказы на местах Сударушка/Белая дача Дашки.doc
Compressing Заказы на местах Дашки/О запрете АЛКОГОЛЯ .doc
28.08.2014 15:39
baggio
 
Цитата:
vdm Есть подозрение что setenv там не отрабатывает.
Потому что это внутренняя команда шелла csh.
А в скрипте для крона указан /bin/sh, в котором переменные окружения export-ить нужно.
можно по подробнее с небольшим примером...
или может шел сменить?
28.08.2014 15:43
vdm
 
Можно сменить

Код:
#!/bin/tcsh
Можно забить на setenv

Код:
#!/bin/sh
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
28.08.2014 15:48
OlegON
 
погодите, предлагаю это не в скрипт лопатить, а в системе разобраться, почему русская локаль не установлена... а то где-то это еще сойдется...
Цитата:
locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"
LC_TIME=en_US.UTF-8
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
28.08.2014 15:49
baggio
 
Цитата:
vdm Можно сменить

Код:
#!/bin/tcsh
Можно забить на setenv

Код:
#!/bin/sh
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
BINGO!!!
28.08.2014 15:52
OlegON
 
Вот это и называется костылями... Еще раз предлагаю разобраться, почему локаль не выставлена в системе...
28.08.2014 15:59
baggio
 
Цитата:
OlegON погодите, предлагаю это не в скрипт лопатить, а в системе разобраться, почему русская локаль не установлена... а то где-то это еще сойдется...
nas4free: ~ # locale
locale: Command not found.
28.08.2014 16:00
baggio
 
Цитата:
OlegON Вот это и называется костылями...
.это называется open source
28.08.2014 16:21
baggio
 
итогово работающий скрипт:
Цитата:
#!/bin/sh

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
NAME=`/bin/date '+%Y%m%d'`
7za a -mx9 -ssc /mnt/200GB/BackUp/1c/1c$NAME.7z @/mnt/200GB/BackUp/listfile_1c.txt
find /mnt/200GB/BackUp/1c -name "*.7z" -mtime +7 -delete
а да в listfile_1c.txt

Цитата:
/mnt/a/b/1c/*
но не тут то было:
Цитата:
Aug 28 16:14:25 nas4free kernel: pid 8368 (7za), uid 0, was killed: out of swap space
Aug 28 16:14:25 nas4free root: The cron job '/mnt/200GB/backup.sh' has been executed successfully.
больше всего радует The cron job '/mnt/200GB/backup.sh' has been executed successfully
а то что там всё нагибнулось... ну тут уж... ну не судьба... :)
28.08.2014 16:23
vdm
 
Цитата:
OlegON погодите, предлагаю это не в скрипт лопатить, а в системе разобраться, почему русская локаль не установлена... а то где-то это еще сойдется...
Почему не установлена.
Это крон весь из себя такой секурный, что юзерское окружение не инитит.
28.08.2014 16:29
OlegON
 
Цитата:
baggio .это называется open source
ну да, если опенсурс не управляется силой мысли, то это недостаток, а если в недоос что-то не работает, то это уже привычка...
ставь винду, никто же не заставляет мучиться так... я говорю, что твое незнание - не повод обливать софт грязью. а правка локали в каждом скрипте, если она у тебя должна быть русская по сути - бред.
28.08.2014 16:33
OlegON
 
Цитата:
baggio больше всего радует The cron job '/mnt/200GB/backup.sh' has been executed successfully
а то что там всё нагибнулось... ну тут уж... ну не судьба... :)
Я же тебя предупреждал :) Не судьба вернуть нормальный код выхода в своем скрипте? Спрятал поломку, так что теперь плевать против ветра-то?
28.08.2014 16:33
OlegON
 
Цитата:
vdm Почему не установлена.
Это крон весь из себя такой секурный, что юзерское окружение не инитит.
А я про юзерское и не говорю, про системное, где локаль и должна быть, чтобы системное не косячило с локалями...
28.08.2014 16:38
baggio
 
а оно у него POSIX... и никого не колышит...
28.08.2014 16:40
baggio
 
Цитата:
OlegON ну да, если опенсурс не управляется силой мысли, то это недостаток, а если в недоос что-то не работает, то это уже привычка...
ставь винду, никто же не заставляет мучиться так... я говорю, что твое незнание - не повод обливать софт грязью. а правка локали в каждом скрипте, если она у тебя должна быть русская по сути - бред.
ну я не обливаю софт грязью... а пишу конкретные ниразу не интуитивные заковыки... которых по моему мнению в нормальном софте быть не должно...
но опять таки имхо...
28.08.2014 16:56
OlegON
 
Проблема в тебе, извини :) Вполне себе интуитивно все. И софт - конфетка... Кто-то есть и радуется, а кто-то весь в шоколаде запачкается, пока развернет. Но это я про Линукс, а не бздю. Про фряху ничего не знаю.
28.08.2014 17:04
baggio
 
ну одно мнение против другого...
есть люди которые пользуются кривым софтом и радуются...
есть люди которые пользуются прерасно написанным софтом и несчастливы...
но то что люди радуются не говорит о том что софт хороший... как и обратное...
в линуксах полно косяков... причем ниразу не интуитывных...
холиварить тут безсмысленно...
28.08.2014 17:14
vdm
 
Да ладно, берем "неправильный" линукс (suse) и получаем в кроне тот же голый posix.

locale
Код:
LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
Ставилось все "по умолчанию", с указанием страны/языка.
28.08.2014 17:16
Павел Сосновских
 
может бред, но...а cron точно под root'ом работает?
28.08.2014 22:54
baggio
 
Цитата:
Павел Сосновских может бред, но...а cron точно под root'ом работает?
да
29.08.2014 18:40
OlegON
 
Цитата:
baggio в линуксах полно косяков... причем ниразу не интуитывных...
холиварить тут безсмысленно...
ну вот и не начинай :) а выражаться тогда лучше начинай "с моей точки зрения человека, привыкшего пользоваться мышкой, это не интуитивно понятно, как настраивать" :) то, что ты называешь косяками, таковыми в большинстве пока выявленных случаев не являются. просто такое поведение после винды кажется неправильным или непривычным, а мне, например, поведение винды во многом кажется абсолютно дебильным... но я не стремлюсь тебя в этом убедить.
29.08.2014 18:46
OlegON
 
Цитата:
vdm Да ладно, берем "неправильный" линукс (suse) и получаем в кроне тот же голый posix.
Я не хотел бы вдаваться сейчас в нюансы настройки "из коробки" разных дистрибутивов, но у меня, например, прибито в системе

/etc/env.d/02locale
Цитата:
LC_ALL=""
LANG="ru_RU.UTF-8"
LC_TIME="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
TZ="Europe/Moscow"
что решает проблемы локали в принципе... Таймзону-то тоже надо прибивать, у меня часы в UTC... Но переменные в разных дистрибутивах по-разному ставятся...
30.08.2014 11:35
baggio
 
Цитата:
OlegON ну вот и не начинай :) а выражаться тогда лучше начинай "с моей точки зрения человека, привыкшего пользоваться мышкой, это не интуитивно понятно, как настраивать" :) то, что ты называешь косяками, таковыми в большинстве пока выявленных случаев не являются. просто такое поведение после винды кажется неправильным или непривычным, а мне, например, поведение винды во многом кажется абсолютно дебильным... но я не стремлюсь тебя в этом убедить.
согласен...
с моей точки зрения человека, привыкшего пользоваться мышкой, это не интуитивно понятно, как настраивать
13.07.2015 16:46
baggio
 
вообщем дрять энта zfs... ^-) щя буду какашками кидаться...
имею щя полутруп...

по принципу...
)
Цитата:
Предисловие. Нет на свете ничего абсолютно чёрного (белого, полезного, плохого, вредного...) Так и COW принцип записи данных в ZFS (сначала пишем новое на свободное место, потом перемещаем указатель на новый адрес, потом освобождаем место под старые данные) всем хорош. И надёжность и снимки файловой системы мгновенные, и варежки детям вяжет. Но оборотная сторона в том, что когда свободного места становится совсем мало (менее 5%), производительность ZFS стремительно деградирует. А если забить пул совсем, то получится вообще феерическая дрянь.

Понятно, на заполненный на 100% ZFS пул ничего нельзя записать. Но с него ничего нельзя и стереть! Ведь стирание в COW концепции - это сначала запись нового блока!.. Печалька.



Так что сильно советую больше чем на 90-95% домашние пулы не забивать, а 100% так избегать совсем. А сегодня мы подробно разберём такую проблему, возникшую у камрада doctor56. Как она упиралась, как была решена, почему возникла и каков алгоритм действий в подобной ситуации.
Опции темы


Часовой пояс GMT +3, время: 13:01.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.