Я решил это, удалив передний '* /' и используя абсолютные пути. Я до сих пор не знаю, почему они работали в терминале и почему не в сценарии с правильными скобками и выходами.
Bash игнорирует аргументы zip -x
364
Viktor Koncsek
Приведенный ниже скрипт игнорирует все аргументы -x exclude при запуске из bash, но он отлично работает из командной строки:
#!/bin/sh TIMESTAMP=$(date +%u) ulimit -s 65536 WEEK=`date +"%V"` if [ $(($WEEK%2)) -eq 0 ]; then echo "even"; BACKUP_DIR="/mnt/backup/2_$TIMESTAMP" mkdir -p "$BACKUP_DIR/www" else echo "odd"; BACKUP_DIR="/mnt/backup/1_$TIMESTAMP" mkdir -p "$BACKUP_DIR/www" fi if [ $(date +%u) -gt 6 ]; then /usr/bin/zip -r -y $BACKUP_DIR/www/web.zip /var/www/ -x '*/.opcache/*' -x '*/phpThumb/cache/*' else /usr/bin/zip -r -y $BACKUP_DIR/www/web.zip /var/www/ -x '*/mycompany/files/*' -x '*/.opcache/*' -x '*/xml_extras/*' -x '*/files_admin/extras/*' -x '*/chatFiles/*' -x '*/phpThumb/cache/*' -x '*/backup-guard/*' -x '*/mailer/*' -x '*/mycompany/attachments/*' fi exit 0
Это 14-дневное решение для резервного копирования, и я хочу, чтобы в будние дни игнорировались большие папки, например изображения. По какой причине аргументы -x игнорируются?
Примечание: вы помечаете [tag: bash], но шебанг указывает на `sh`. Вы можете запустить скрипт из Bash, но * если * какая-либо оболочка имеет отношение к проблеме, тогда это `sh`, а не` bash` (если вы не * source * из Bash).
Kamil Maciorowski 6 лет назад
1
@KamilMaciorowski Спасибо! Я решил это с вашим комментарием, после поиска проблемы с оболочкой, я заметил, что мне нужно бежать * в \\ *
Viktor Koncsek 6 лет назад
0
Честно говоря, я еще не совсем понял. Не о чем беспокоиться. Я думаю, что если вы [ответите на свой вопрос] (https://superuser.com/help/self-answer) и объясните, то ваше решение и причина, по которой оригинальный сценарий не работал, станут ясны.
Kamil Maciorowski 6 лет назад
0
Неважно, его все еще не работает должным образом (за исключением командной строки, это прекрасно).
Viktor Koncsek 6 лет назад
0
Я официально пометил этот вопрос как дубликат. Я был тобой, я бы просто удалил это.
Kamil Maciorowski 6 лет назад
0
1 ответ на вопрос
0
Viktor Koncsek
Похожие вопросы
-
9
В чем разница между командами "su -s" и "sudo -s"?
-
4
Требуется хороший бесплатный образ Ubuntu Server VMWare
-
4
Каковы различия между основными дистрибутивами Linux? Я замечу?
-
-
2
Ограничить использование процессора для Flash в Firefox?
-
2
Как мне заставить мой микрофон работать под Debian GNOME?
-
2
Конки установки - образцы / идеи?
-
3
Каковы различия между оконными менеджерами Linux?
-
2
ThunderBird / Синхронизация освещения с SE k770i
-
4
Файловая система Linux
-
6
Полноэкранная медленная вспышка в KDE 4