Для упрощения доступа в интернет из локальной сети решил всё-таки взять и настроить прозрачный прокси, т.к. очень долго собирался это сделать и давно хотел сделать так, чтобы в локальной сети не заботиться о настройках параметров прокси-сервера. Linux Ubuntu Server уже был установлен и настроен в качестве LAMP (Linux Apache MySQL PHP), о чем я ранее писал в шпаргалке, а так же еще в нескольких статьях о Linux Читать далее
Архив автора: Alex
Как подключить новый жесткий диск в Debian Linux
Продолжаю осваивать Linux.
Имеется установленный Debian 6.0. Подключил новый жесткий SATA диск (винчестер) размером 1Гб для хранения бэкапов. Теперь опишу максимально подробно как сделать чтобы Linux «увидел» этот диск, как отформатировать диск и как его смонтировать. Читать далее
Bash скрипт для удаления старых файлов
Существует много решений в Linux по хранению бэкапов. Есть и готовые решения в виде программ, есть скрипты.
Так уже получилось, что бэкапы складывать в определенную папку задача не сложная (архиватор + cron) но как следить чтобы архивы не плодились? Опять же, есть готовые решения, но я предпочитаю самому управлять процессом. Простой скрип на bash решает проблему удаления старых бэкапов. Например, когда надо, чтобы хранились последние 5 копий, удаляются самые старые файлы бэкапов, а 5 новых остается.
Скрипт не блещет гениальными решениями, более того, я уверен, что это можно было сделать проще, но я как новичок в баше сделал это вот так:
#!/bin/bash
#Проверяем количество входных параметров
if [ $# -lt 3 ]
then
echo Something wrong with parameters
exit
fi
x=1 # Счетчик файлов
path=$1 # Путь к удаляемым файлам
filemask=$2 # маска файлов
keep=$3 # сколько файлов (бэкапов) надо оставлять
for i in `ls -t $path/$filemask`
do
if [ $x -le $keep ]
then
((x++))
continue
fi
rm $i
done
Запускаю этот скрипт в кроне раз в неделю, например, с такими параметрами:
/etc/rotate.sh /var/backup/ etc* 3
Это значит что самые старые файлы, начинающиеся с etc в папке /var/backup, кроме трёх самых свежих, будут удалены.
Неверная кодировка в MySql из PHP. Вопросы вместо слов
Пишу свой первый сайт на PHP с использованием базы данных Mysql и столкнулся со следующей неожиданностью, о которой ниже, а для начала вводные данные:
- сайт делается в кодировке utf8, о чем указано в заголовке страницы между тегами head:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
- страница создается в редакторе в кодировке utf8
- сама база создана с указанием кодировки utf8
При этом получилось так, что при извлечении данных из базы я получал вместо строк с русским текстом знаки вопросов, хотя браузер правильно понимал кодировку.
Решение данной проблемы оказалось простым. Надо после соединения с MySql базой из PHP указать явную кодировку запросом set names utf8
Например, так:
$result = mysql_query ("set names utf8", $link);
где $link — линк на идентификатор соединения с базой (см. mysql_connect())
Всё, теперь данные выводятся в верной кодировке.
Вообще-то эта проблема имеет и другие корни с соответственно другими методами решения. Более подробно о проблемах с кодировками в MySQL можно почитать в следующих источниках:
- phpMyadmin по-русски. Очень доходчиво, по полочкам все разложено и в доступной краткой форме.
- PHP FAQ. Так же полезная информация, но еще рассказывается что делать если требуется перекодировка данных.
- Linux.by wiki pages. А это вообще целый вики на эту тему.
Права доступа в Linux
Еще одна небольшая шпаргалка. Очень помогла эта статья при работе с правами доступа в Linux
ШПАРГАЛКА. Команды Unix — Linux
Полезные команды Linux тут
Перепечатаю на случай исчезновения источника
Файловые команды:
ls – список файлов и каталогов
ls -al – форматированный список со скрытыми каталогами и файлами
cd dir – сменить директорию на dir
cd – сменить на домашний каталог
pwd – показать текущий каталог
mkdir dir – создать каталог dir
rm file – удалить file
rm -r dir – удалить каталог dir
rm -f file – удалить форсированно file
rm -rf dir – удалить форсированно каталог dir
cp file1 file2 – скопировать file1 в file2
cp -r dir1 dir2 – скопировать dir1 в dir2; создаст каталог dir2, если он не существует
mv file1 file2 – переименовать или переместить file1 в file2. если file2 существующий каталог — переместить file1 в каталог file2
ln -s file link – создать символическую ссылку link к файлу file
touch file – создать file
cat > file – направить стандартный ввод в file
more file – вывести содержимое file
head file – вывести первые 10 строк file
tail file – вывести последние 10 строк file
tail -f file – вывести содержимое file по мере роста, начинает с последних 10 строк
————————————————————————————————————————————————————
Читать далее
Повреждён или отсутствует файл cp_1251.nls
Продолжаем восстанавливать Windows.
В этот раз попался компьютер, который при попытке запуска Windows XP выдал ошибку:
Повреждён или отсутствует файл \WINDOWS\system32\cp_1251.nls
Безопасный режим не помогает. Нашел в интернете простой способ восстановления работы системы без переустановки Windows. Единственное, что может усложнить процесс восстановления — это наличие либо установочного диска Windows, либо наличие какого-либо Live-CD, чтобы просмотреть диск «поврежденной» системы.
Итак, суть проблемы в следующем. По какой-то причине (точно не установлено по какой, может быть после установки какой-то программы, в том числе русификации какой-либо программы) система требует файл \Windows\system32\cp_1251.nls не его там нет и на работающей системе! Но зато есть файл system32\c_1251.nls. Простое переименование этого файла восстанавливает систему. А уж как проделать это — не важно. Можно запустить новую установку и зайти в Восстановление системы нажатием кнопки r. Далее зайти в консоль и командой DOS скопировать файл system32\c_1251.nls в system32\cp_1251.nls (copy c:\WINDOWS\system32\c_1251.nls c:\WINDOWS\system32\cp_1251.nls). А можно загрузить с любого Live-CD и проделать это так же в графическом режиме.
Еще раз вкратце. Суть восстановления при такой ошибке:
Нужно скопировать файл \WINDOWS\system32\c_1251.nls в \WINDOWS\system32\cp_1251.nls