Bash скрипт, убирающий все пустоты в тексовом файле

Данный скрипт убирает все пустоты в текстовом файле, включая пробелы и пустые строки:

#!/bin/bash
# Remove blanks in test files
echo -n "Emter a file name : "
read file
out="output.$file"
if [ ! -f $file ]
then
echo "$file not a file!"
exit 1
fi
sed -e 's/[\t ]//g;/^$/d' $file > $out
echo "Output written to $out file"

Количество просмотров :2608

Bash Переводим текс в нижний регистр

Небольшой bash скрипт, для преобразования текста в файле в нижний регистр

#!/bin/bash
#Script changing all to Lowercase
echo -n "Enter a text file name : "
read file
if [ ! -f $file ]
then
echo "$file not a file!"
exit 1
fi
cat $file | tr '[A-Z]' '[a-z]'

Количество просмотров :8451

PhP загружаем файлы на сервер

Php позволяет вам загружать файлы прямо на сервер используя простую HTML форму. Для того что бы это все работало, вам обязательно необходимо — страница с web формой, загружающий скрипт и папка на сервере с доступом на запись.

Начнем мы с простой HTML формы:

<form  action="upload.php" method="post"  enctype="multipart/form-data">
File:  <input type="file" name="filename" />
<input  type="submit" value="Upload" />
</form>

Очень важно, что бы в форме использовался именно метод POST а не GET, так же необходимо указать что мы будем передавать файл, делается это при помощи enctype=»multipart/form-data».

Теперь нам нужно создать папку на сервере и установить на нее права 777. Нам так же понадобиться абсолютный путь к папке, например /var/www/vhosts/eddnet.org/html/upload/. Сам загружающий скрипт будет выглядеть так:

<?
$folder = “/var/www/vhosts/eddnet.org/html/upload/”;
if (is_uploaded_file($HTTP_POST_FILES['filename']['tmp_name']))  {  
    if (move_uploaded_file($HTTP_POST_FILES['filename']['tmp_name'], $folder.$HTTP_POST_FILES['filename']['name'])) {
         Echo “File uploaded”;
    } else {
         Echo “File not moved to destination folder. Check permissions”;
    };
} else {
     Echo “File is not uploaded.”;
};
?>

И называться он будет upload.php.

Теперь несколько пояснений. Когда файл будет загружен, ему будет дано временное имя и он будет помещен во временную папку вашего web сервера. Это временное имя доступно используя глобальную масив переменных $HTTP_POST_FILES. В нашей форме в теге input мы присваиваем имя «filename» (<input type=»file» name=»filename» />), значит имя временного файла — $HTTP_POST_FILES[‘filename’][‘tmp_name’]

Настоящее же имя нашего фала находиться в другой переменной — $HTTP_POST_FILES[‘filename’][‘name’]. Теперь, после того, как наш файл попал во временную папку, мы используем функцию move_uploaded_file() что бы переместить его в /var/www/vhosts/eddnet.org/html/upload/ :

move_uploaded_file($HTTP_POST_FILES[‘filename’][‘tmp_name’], $folder.$HTTP_POST_FILES[‘filename’][‘name’])

Количество просмотров :7383

Вшиваем SLIC 2.1 для Windows 7

Подробная инструкция, о том как вшить SLIC 2.1 маркер в BIOS, все неободимые программы вы найдете в самой статье.

И так три способа активации:
— модифицированный биос с маркером SLIC 2.1
— файл сертификат *.XRM-MS
— один из ключей OEM:SLP

Читать продолжении статьи: Вшиваем SLIC 2.1 для Windows 7 »


Количество просмотров :528611

Время загрузки PhP страницы

Как узнать, за какое время загружаеться ваша php страница? Все что необходимо это добавить в начале вашей страницы:

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$start = $time;
?>

и в конце:

<?php
$time = microtime();
$time = explode(' ', $time);
$time = $time[1] + $time[0];
$finish = $time;
$total_time = round(($finish - $start), 4);
echo 'Page generated in '.$total_time.' seconds.'."\n";
?>

Здесь была использована функция microtime(), она достаточно точно показывает время.


Количество просмотров :15940

Настройка домена в DNS bind

Редактируем файл /etc/named.conf и добавляем в него нашу новую зону, пускай это будет eddnet.org:

zone «eddnet.org» {
type master;
file «master/eddnet.org»;
//Если есть необходимость, извещаем вторичный DNS
also-notify { 172.16.0.1;};
//Разрешаем передачу зоны на вторичный DNS
allow-transfer { 172.16.0.1;};
};

Читать продолжении статьи: Настройка домена в DNS bind »


Количество просмотров :4345

Кеширующий DNS за 5 минут

Настраивать свой DNS я буду на CentOS, поэтому могу воспользоваться  менеджером пакетов Yum. Нам понадобиться 2 пакета, это caching-nameserver и bind-chroot:

yum install caching-nameserver bind-chroot

После этого, редактируем /etc/named.caching-nameserver.conf, в options необходимо добавить запись о форвардинге:

forward first; //Обращаемся сначала к удаленным DNS, а потом, если не получилось, пытаемся собственными силами.
forwarders {
8.8.8.8; // Google DNS
};

Так же, можно добавить DNS вашего провайдера.

На этом настройки закончены, сделаем так, что бы наш сервер обращался с DNS запросами сам к себе, для этого добавляем в /etc/resolv.conf:

nameserver 127.0.0.1

Незабудте, запустить и добавить named в автозагрузку :

/etc/init.d/named restart
chkconfig named on

Количество просмотров :3700

Postfix + проверка существования почтовых ящиков через Ldap

В папке /etc/postfix, создаем файлик ldap.cf содержащий:

server_host = 192.168.0.10
version = 3
server_port = 389
timeout = 60
search_base = dc=EDDNET, dc=ORG
query_filter = (&(proxyAddresses=smtp:%s)(|(objectClass=user)(objectClass=group)(objectClass=contact)(objectClass=publicFolder)))
leaf_result_attribute = mail
result_format = %s
result_attribute = cn
special_result_attribute =
scope = sub
bind = yes
bind_dn=user@eddnet
bind_pw=******

Теперь немного подробнее о некоторых параметрах, server_host — имя или Ip адрес Ldap сервера, search_base — база где будет производиться поиск, bind_dn — имя пользователя имеющего доступ к базе, обязательно без зоны, то есть только чистое название домена после собаки, bind_pw — пароль пользователя.

В main.cf добавляем —

virtual_mailbox_maps = ldap:/etc/postfix/ldap.cf

Количество просмотров :3835

Хешируем aliases

Есть два способа, первый при помощи команды makemap:

makemap hash /etc/mail/aliases.db < /etc/mail/aliases

Второй, намного удобней и практичней, просто выполните команду:

newaliases

Количество просмотров :1804

Создать пользователя без личной папки и доступа к shell-у

Казалось бы, банально, но забыть очень легко, я вот в голове такие мелочи не держу долго, потому и записываю:

groupadd -r user
useradd -r -g user -d /no/where -s /no/shell user

-g user — группа user
-d /no/where -  без личной папки
-s /no/shell — без доступа к shell-у


Количество просмотров :2916