#bash #jakarta-ee #character-encoding
#bash #джакарта-ee #кодировка символов
Вопрос:
Я создал этот простой скрипт, который выполняет резервное копирование, я написал и протестировал его в Linux, затем скопировал его в свой каталог WebApp WEB-INF / scripts, чтобы меня можно было запустить через Java Runtime.exec().
#!/bin/bash
JACCISE_FOLDER="/var/jaccise"
rm $JACCISE_FOLDER/jaccisebackup.zip
zip -r jaccisefolder.zip $JACCISE_FOLDER
mysqldump -ujacc -pxxx jacciseweb > jaccisewebdump.sql
zip jaccisebackup.zip jaccisewebdump.sql
zip jaccisebackup.zip jaccisefolder.zip
rm jaccisewebdump.sql
rm jaccisefolder.zip
cp jaccisebackup.zip $JACCISE_FOLDER
Но это не так. Итак, я попытался скопировать его из WEB-INF / scripts в свой пользовательский каталог и запустить, чтобы запустить его в рублевом режиме. В результате получается: «: File o directory non esistente» (Означает «Неизвестный файл или каталог», обратите внимание на двоеточие в начале). Я создал другой файл с нуля, скопировал и вставил весь скрипт, и он работает. Я могу подумать, что это связано с:
- Кодировка текста
- n r различия между Windows (я использую Eclipse в Windows для редактирования всего) и Linux.
Как мне решить эту проблему с развертыванием?
Ответ №1:
Вы должны проверить, является ли файл исполняемым (chmod x). Затем вам следует проверить, разрешает ли ваш веб-сервер выполнение внешних программ. Это может быть проблемой безопасности, и, скорее всего, веб-сервер предотвращает выполнение. Проверьте журналы веб-сервера. Кодировку файла можно изменить с помощью команды dos2unix. Для отладки вашего скрипта вы можете добавить «set -x» в начале, но я думаю, что скрипт вообще не запускается.
Комментарии:
1. это была просто проблема с кодировкой. Использование dos2unix решило эту проблему. В любом случае, как я могу избежать этого во время развертывания?
2. Вы найдете кодировку текстового файла в Window-> Preferences и там General-> Workspace.