Архивы | Январь2013

VFSTPD и символическая ссылка

Понадобилось через зенд забубенить удаленный проект.

Vsftpd не дает работать с каталогами, подключенными в рабочий с помощью симлинка, поэтому создать проект на удаленном сервере не удавалось (в рабочем каталоге символическая ссылка на myadmin).

Решается так:
Создаем директорию-назначение (DEST)
Монтируем с параметром источник в приемник: mount --bind SOURCE DEST
Если нужно, чтобы "хардлинк" работал после перезагрузки, то добавляем в /etc/fstab строку:
SOURCE DEST none bind 0 0

Далее...

Как вывести звездочку в bash.

Имеем:
* - служебный символ, который используется для вывода всех файлов.

Нужно:
В bash написать скрипт, который делает "SELECT *" из таблицы.
Писать отдельный SQL-файл лень/нельзя.

Проблема:
Работать не будут:

sql="SELECT * FROM table" && echo $sql | mysql
sql="SELECT \* FROM table" && echo $sql | mysql
sql="SELECT [*] FROM table" && echo $sql | mysql
sql="SELECT (*) FROM table" && echo $sql | mysql

Решение - взять в двойные кавычки упоминание переменной $sql:

sql="(SELECT * FROM import.tovars);" && echo "$sql" | mysql

Далее...

Найти и запаковать в архив нужные файлы

Задача: найти файлы, модифицированные после определенной даты и собрать их в одном месте, сохранив структуру каталогов. В папке "./logs" искать не нужно.

Решение:
#find -type f -mtime -22 | grep -v "./logs/" > /tmp/03.01.2013.txt
#tar czf /tmp/update.tar.gz -T /tmp/03.01.2013.txt

Вуа-ля в файлике /tmp/update.tar.gz лежит то, что менялось за последние 22 дня)

Далее...