Локаль [Победа]
Posted: 17 Sep 2012 11:06
Пришло время апгрейдаться. На текущий момент 0.7.2 Sabanda (сборка 5543) сильно правленная руками. На новой машине 9.0.0.1 - Sandstorm (сборка 249). Задача - вспомнить всё, что наделано руками и пересунуть 640 гиг.
Наткнулся на грабли. На старом NAS есть энное количество файлов, загруженных юзерами через веб-сервер. Кодировка UTF-8. Файлы, в моем личном каталоге загружены либо по ftp либо по ssh. И, соответственно имеют кодировку моей рабочей станции. KOI8-R. Ну во всяком случае хочется в это верить...
Ну кто-ж бы знал, что это традиционный мой csh просто по set не показывает никакой локали. Я и считал, что locale=c. А на новый NAS я завел пользователя с шеллом sh. И выяснил, что это нифига не так. И что там UTF-8 со всеми вытекающими.
Так что вопрос... А как сидя на этих граблях теперь переписать файлы со старого NAS на новый?
UPD: scp копирует правильно. Кладя болт на кодировку. Но при этом летит владелец и пермишенсы...
А вот Unison, зараза, не может работать когда на концах разные версии. Rsync буду пробовать в ночь. Достало меня всё.
UPD2: rsync тоже все правильно делает. Но опять же летят владельцы и пермишенсы...
Решение. Rsync по ssh запускается от рута, но с указанием имени пользователя ssh на источнике. Тогда копируются и пермишенсы и владельцы. Например
Осталось придумать как перетянуть юзеров.
Наткнулся на грабли. На старом NAS есть энное количество файлов, загруженных юзерами через веб-сервер. Кодировка UTF-8. Файлы, в моем личном каталоге загружены либо по ftp либо по ssh. И, соответственно имеют кодировку моей рабочей станции. KOI8-R. Ну во всяком случае хочется в это верить...
Ну кто-ж бы знал, что это традиционный мой csh просто по set не показывает никакой локали. Я и считал, что locale=c. А на новый NAS я завел пользователя с шеллом sh. И выяснил, что это нифига не так. И что там UTF-8 со всеми вытекающими.
Так что вопрос... А как сидя на этих граблях теперь переписать файлы со старого NAS на новый?
UPD: scp копирует правильно. Кладя болт на кодировку. Но при этом летит владелец и пермишенсы...
А вот Unison, зараза, не может работать когда на концах разные версии. Rsync буду пробовать в ночь. Достало меня всё.
UPD2: rsync тоже все правильно делает. Но опять же летят владельцы и пермишенсы...
Решение. Rsync по ssh запускается от рута, но с указанием имени пользователя ssh на источнике. Тогда копируются и пермишенсы и владельцы. Например
Code: Select all
sudo rsync -av username@sourcehost:/mnt ./