cron + 7za + windows = кракозябры [РЕШЕНО]
Написал простой скрипт резервного архивирования
#!/bin/sh 7za a -t7z "/home/parus_bk/data/test.7z" "/media/buh_share/Для проверки/*"
Примечание: Нужная мне папка и файлы в ней содержат в названии кириллицу, архив открывается в Windows XP.
Запускаю вручную - всё прекрасно работает, на выходе получаю архив, всё тип-топ.
Добавляю в cron
crontab -e
добавляю строку
00 15 * * * root /home/parus_bk/test_script.sh 2>&1 1>/dev/null
ребутнул на всякий случай cron
/etc/init.d/cron restart
Скрипт не запускается.
$#*!
Пробую второй метод: добавляю строку напрямую в /etc/crontab без перезапуска cron
Скрипт срабатывает, но архиве в именах файлов кракозябры.
Как лечить?
-----------------------------------
Решение
1. Архиватору нужно передать параметр -ssc
2. Для работы в кроне обязательно нужно выставлять свою $LANG
3. Указывать лучше "папка", вместо "папка/*"
Реально работает скрипт
#!/bin/sh export LANG=ru_RU.UTF-8 7z -t7z -mx=9 -r -ssc a "/home/parus_bk/data/test.7z" "/media/buh_share/Для проверки"
----------------------
Спасибо за помощь winterheart и школьному сисадмину vix
- Для комментирования войдите или зарегистрируйтесь
не тестировалось
http://www.ibm.com/developerworks/linux/library/l-backup/
а эта строка - это просто подпись
Если ты заносишь задачу по
Если ты заносишь задачу по crontab -e, то имя пользователя (от кого запускаешь, здесь - root) не нужно.
У 7z есть ключ -scs, отвечающий за кодировку имен сжимаемых/разжимаемых файлов.
Используй tar с сжатием lzma, и таких проблем не будет.
Не грусти, товарищ! Всё хорошо, beautiful good!