LXF93:Ответы
(викификация, оформление) |
|||
Строка 323: | Строка 323: | ||
Теперь этот файл сможет прочесть лишь Ваш пользователь. '''НБ''' | Теперь этот файл сможет прочесть лишь Ваш пользователь. '''НБ''' | ||
+ | |||
+ | ==10 От меня к тебе== | ||
+ | '''В:''' Как изменить адрес '''‘from’''' (от) при использовании Linux-команды ''mail''? Она настаивает на | ||
+ | пометке сообщения как '''user@user-laptop''' ('''user-laptop''' – это мое имя хоста). | ||
+ | '''hubris, из форумов LXF''' | ||
+ | |||
+ | '''О:''' Со стандартной командой ''mail'' это невозможно без игры с переменными окружения '''USER''' и '''HOSTNAME''', которая может повредить другим программам, работающим в той же оболочке. | ||
+ | Зато есть много других программ, способных исполнить Ваше желание. Если у Вас установлена ''Mutt'', то | ||
+ | она может взять адрес «'''от'''» из переменной окружения '''EMAIL'''. Но если нет, и Вам нужно лишь настроить | ||
+ | отправку сообщений, ''Mutt'' чересчур громоздка. | ||
+ | Альтернатива попроще – ''SMTPClient'' (http://www.engelschall.сom/sw/smtpclient), в работе она напоминает mail, но | ||
+ | принимает аргумент '''--from''' для установки адреса «'''от'''». | ||
+ | ''SMTPClient'' отправляет сообщения на соответствующий SMTP-сервер, по умолчанию – на '''localhost'''. Если | ||
+ | нужен другой сервер, то его имя можно указать в | ||
+ | параметре командной строки '''--smtp-host''', а можно | ||
+ | настроить переменную окружения '''SMTPSERVER'''. | ||
+ | |||
+ | echo “Hello world - what else?” | smtpclient | ||
+ | --smtp-host=my.mail.server | ||
+ | --from=hubris@wherever | ||
+ | --subject «Hello World» | ||
+ | someone@someplace | ||
+ | |||
+ | '''ПХ''' | ||
+ | |||
+ | ==11 Спам достал== | ||
+ | |||
+ | '''В:''' У меня небольшая офисная сеть со своим почтовым сервером, на котором работает ''Sendmail'' | ||
+ | в паре со ''SpamAssassin''. ''Fetchmail'' забирает | ||
+ | почту со всех POP3-серверов, затем она раскладывается по папкам пользователей, откуда они загружают | ||
+ | ее к себе через ''qpopper''. Вопрос касается ''SpamAssassin'' | ||
+ | (у меня стоит последняя версия, т.к. я постоянно | ||
+ | обновляю ее через CPAN): я хочу добиться того, чтобы | ||
+ | письма от определенных отправителей ('''whitelist''') | ||
+ | никогда не воспринимались как спам, независимо от | ||
+ | их содержания. Но ''SpamAssassin'' работает по принципу начисления «очков», а опция '''whitelist''' дает их слишком мало для того, чтобы повлиять на окончательное | ||
+ | «решение». Я хотел было изменить принятое по умолчанию число очков для '''whitelist''', но это оказалось | ||
+ | невозможным. Получается, если члены списка '''whitelist''' | ||
+ | отправят письмо и оно будет идентифицировано как | ||
+ | спам, то '''whitelist''' «не помогает». Нет ли каких-то | ||
+ | обходных путей? Я хочу добиться, чтобы ''SpamAssassin'' | ||
+ | «пропускал» указанных мною отправителей или уж | ||
+ | пускай вообще не проверяет письма от них. Какие | ||
+ | возможны решения? | ||
+ | '''Константин''' | ||
+ | |||
+ | '''О:''' Согласно описанию, опция '''whitelist_from''' дает коэффициент '''-100''', что само по себе более чем достаточно – надо очень сильно постараться, чтобы легитимный клиент набрал более | ||
+ | чем 100 баллов и был принят за спам. Для ''SpamAssassin'', настроенного на индивидуальных пользователей ('''~/.spamassassin/user_prefs''') можно указать | ||
+ | опцию | ||
+ | |||
+ | whitelist_from d.cary@sparkingwire.com | ||
+ | |||
+ | Для общей настройки следует проделать то же | ||
+ | самое в '''/etc/mail/spamassassin/local.cf''' (в зависимости от системы путь может меняться). Альтернативный | ||
+ | метод – написать собственные правила вида: | ||
+ | |||
+ | header NOSPAMFROM From =~ /notaspamer\@ | ||
+ | example\.com/i | ||
+ | score NOSPAMFROM -100.0 | ||
+ | |||
+ | Подробности можно найти по адресу http://wiki.apache.org/spamassassin/ManualWhitelist. | ||
+ | '''Андрей Тусеев''' | ||
+ | |||
+ | ==12 Бесплатный сыр...== | ||
+ | '''В:''' С тех пор, как у нас появился безлимитный | ||
+ | GPRS-интернет, я постоянно ставлю телефон (в | ||
+ | связке ''Bluetoth + KPPP'') на закачку на ночь. Но | ||
+ | иногда демон PPP «вылетает» с ошибкой, а так как я в | ||
+ | это время обычно сплю, то обнаруживаю это только | ||
+ | утром. Можно ли сделать автоматическое восстановление соединения при его разрыве или крахе демона ? | ||
+ | '''Казанцев А.С.''' | ||
+ | |||
+ | '''О:''' Конечно, можно. Однако, способ решения этой задачи зависит от первопричины – т.е. от того, из-за чего именно «вылетает» ''pppd''. Если соединение (случайно или намерено) обрывает | ||
+ | оператор, можно воспользоваться средствами самого | ||
+ | ''pppd'' – т.е. опциями '''persist''' (не выходить при обрыве | ||
+ | соединения, пытаться перезвонить), '''holdoff''' (время | ||
+ | ожидания перед следующей попыткой дозвона) и | ||
+ | '''maxfail''' (число неудачных попыток, после которых | ||
+ | демон все же завершит работу). Все они описаны в | ||
+ | man и вы можете передать их (вместе с соответствующими параметрами) посредством ''KPPP'' – для этого в | ||
+ | окне свойств учетной записи предусмотрена специальная кнопка «'''Customize ''pppd'' Arguments'''».Если же | ||
+ | обрыв происходит локально (например, прерывается | ||
+ | Bluetooth-канал или «подвисает» телефон, что тоже | ||
+ | случается), придется писать специальный скрипт, | ||
+ | который проверяет доступность аппарата и, в случае | ||
+ | необходимости, производит повторную инициализацию. '''Валентин Синицын''' |
Версия 13:18, 26 ноября 2008
|
|
|
Содержание |
Ответы
- Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
1 Инсталляция с DVD
В: Я полный новичок в Linux, но cумел установить OpenSUSE 10.2 с DVD LXF89. Это нечто! До сих пор под впечатлением от увиденного. Возможно, мой вопрос выдаст мое невежество: как перенести другие программы с DVD (например, FLPhoto) на мой ПК, чтобы они работали? Инструкций по перемещению, установке, встраиванию и другим методам сделать программу «инсталлированной» и работающей я не нашел, наверняка потому, что это известно всем,кто пользуется DVD и Linux. Дайте же и мне ниточку. Михаэль Мюллер [Michael Mueller]
О: Инсталлировать программу можно по-разному, в зависимости от способа ее упаковки. В Вашем случае существуют два файла, содержащих FLPhoto: FLPhoto-1.3-source.tar.gz и FLPhoto-1.3-linux-intel.rpm. SUSE использует формат пакетов RPM, поэтому Вам нужен второй файл. Инсталлировать его можно с помощью Yast – инструмента администрирования SUSE на все случаи жизни – двойным щелчком на файле. У Вас спросят пароль администратора (установка программы предполагает запись в системные каталоги), затем появится инсталлятор, и останется лишь нажать кнопку «Install» (Установить).
Если RPM-файла нет, то остается возможность установить программу из архива с исходными текстами (эти файлы обычно оканчиваются на .tar.gz или .tar.bz2) – см. далее. Такая инсталляция предусматривает наличие компилятора, который SUSE по умолчанию не устанавливает. Но он все же присутствует на DVD: все, что Вам нужно – запустить Yast, выбрать пункт Software Management (Управление программами), набрать в поле поиска gcc, выбрать пакет gcc и нажать кнопку «Install». Вместе с пакетом gcc будут установлены все компоненты, необходимые для сборки программ из исходных кодов. НБ
2 Оптимизация Optus
В: Я из Австралии, у меня широкополосное подключение к Интернету через Optus. Не мог заставить Linux подключиться к модему (Siemens SpeedStream 4200), пока не поставил Gentoo 2006.1. Когда все заработало, я заметил такую разницу: Gentoo использует dhcpcd, а другие работают через pump либо dhclient. Mandriva 2007 предлагает все три, но работает лишь dhcpcd. Начав разбираться, я увидел, что dhcpcd применяет параметр –h hostname.
Добиться работы других программ я не смог, зато заработали другие дистрибутивы (DSL-N, Knoppix и Ubuntu): я монтировал на них раздел Gentoo и запускал dhcpcd, который тут же выдавал сеть. Другие программы получали вроде бы корректный IP-адрес, но не могли подключиться, либо обрывали соединение, прежде чем я мог им воспользоваться. Я думал, что Optus нужен особый модем, но он работает и с другими марками модемов. До того, как я нашел Gentoo, приходилось пользоваться фирменным установочным диском в Windows XP. В чем различие этих программ? Питер Соренсен [Peter Sorensen]
О: Похоже, эта проблема характерна для данного модема. При работе с некоторыми DHCP-программами он ведет себя в точности как Вы описали: получает IP-адрес, а затем обрывает подключение. Решений здесь два, и одно из них Вы уже нашли: пользуясь dhcpcd, можно передать модему hostname с параметром -h. Эквивалент для pump – это -u или --hostname, а вот для dhclient нет ничего. Может оказаться, что Ваш провайдер или Ваш модем чересчур придирчивы к формату направляемых Вами DHCP- запросов.
Поскольку поддержка DHCP этим модемом откровенно неустойчива, более надежным может оказаться другое решение: постоянный IP-адрес. Необходимо узнать IP-адрес, назначаемый вашему модему – это можно сделать, подключившись через dhcpcd, из-под Windows или путем проб и ошибок. Конкретный адрес зависит от провайдера, но по умолчанию для OptusNet обычно 10.1.1.1. Узнав IP-адрес, несложно настроить Ethernet-интерфейс Вашего компьютера на использование статического адреса. Возьмите адрес одной подсети с модем (скажем, 10.1.1.2) и назначьте шлюзу и DNS-серверу адрес модема (10.1.1.1). Маску подсети необходимо установить в 255.255.255.0.
С такой настройкой проблемы должны исчезнуть. DHCP здорово сберегает время при работе в крупных сетях или при перемещении от одной сети к другой с ноутбуком. А в небольшой домашней сети лучше выделить каждому устройству постоянный адрес. НБ
3 Почта отовсюду
В: Использую Thunderbird в качестве почтового клиента, и вполне им доволен. Я прикупил два ноутбука и хотел бы иметь доступ к своему почтовому ящику со всех своих машин – например, чтобы пользоваться общим содержимым. Вот что мне нужно, в двух словах:
- Хочу забирать почту с сервера ISP разом (оставлять ее там ни к чему).
- На всех машинах я хочу использовать Thunderbird в качестве почтового клиента.
- Все компьютеры должны иметь доступ ко всем моим почтовым ящикам, чтобы, например, отправив сообщение с одного из ноутбуков, я мог видеть отправленное сообщение на втором ноутбуке и на настольном ПК.
- Все это должно работать как в Linux, так и в Mac OS X 10.4.
- Мне нужно открытое ПО.
Пробовал просто открыть общий доступ к почтовой директории через Samba, но – не сработало, файлы индекса оказались испорчены. sfinnie, из форумов LXF
О: Вы можете добиться своего двумя способами. Один из них – забирать почту с сервера через POP3 и синхронизировать почтовые директории на двух машинах. Unison (http://www.cis.upenn.edu/~bcpierce/Unison) превосходно справляется с такими задачами, а также с синхронизацией любой части Вашей домашней директории, которую Вам хотелось бы обновлять на нескольких компьютерах. Unison – лучший выбор для непрерывной синхронизации двух компьютеров: с его помощью мой ноутбук идет в ногу с настольным ПК. Unison использует протокол rsync для экономии трафика и времени, но, в отличие от rsync, обрабатывает еще и ситуации, когда после последней синхронизации файлы обновились на каждом из компьютеров. Настройка работы с тремя машинами потребует, вероятно, некоторых дополнительных усилий, но определенно возможна.
Другой вариант, относящийся лишь к почте – это установка собственного IMAP-сервера на Вашем настольном ПК. Для доставки сообщений с сервера провайдера и их локального хранения можно воспользоваться Fetchmail, затем указать почтовым программам на каждом компьютере на IMAP-сервер на Вашем настольном ПК (на самом ПК следует проделать то же самое, присвоив серверу localhost). Ваша почта хранится на сервере вместе с информацией о статусе, т.е. когда Вы прочтете сообщение на одном компьютере, оно получит отметку о прочтении на всех остальных. В отличие от POP3, IMAP позволяет хранить почту на сервере и читать ее отовсюду через Интернет. Большинство почтовых клиентов могут синхронизировать локальное хранилище с сервером, поэтому можно будет получить локальные копии сообщений для чтения оффлайн.
Я предпочитаю Dovecot (http://dovecot.org), хотя лучше, вероятно, воспользоваться сервером, устанавливаемом в Вашем дистрибутиве по умолчанию: большая часть работы по настройке уже проделана во время инсталляции, к тому же вам помогут форумы и списки рассылки дистрибутива. Чтобы выполнить Ваши несложные требования, не нужно особо отклоняться (если это вообще понадобится) от стандартной настройки. Dovecot wiki, по приведенному адресу, содержит множество полезной информации. Еще одно преимущество такой системы – если в Вашей семье несколько пользователей, можно предписать Fetchmail (возможно, с помощью Procmail) раскладывать почту по их индивидуальным почтовым ящикам. Тогда каждый сможет получить доступ к своей почте через один и тот же IMAP-сервер (под разными учетными записями, конечно). НБ
4 Switchdesk или su?
В: Инсталлировал Fedora Core 6 и загрузил 200 с лишним обновлений. Хотел выйти из режима администратора, но не нашел команды switchdesk. Не переустанавливать же все только из-за этого! Рон Уайт [Ron White]
О: Прежде всего, вообще не следовало запускать рабочий стол от имени администратора! Никакой нужды в этом нет: некоторые дистрибутивы даже намеренно затрудняют загрузку рабочего стола в режиме root. Все программы для системного администрирования можно запускать с рабочего места обычного пользователя. Если понадобятся особые привилегии, у Вас попросят пароль администратора, и сбросят эти привилегии сразу же, как только в них отпадет необходимость. Если Вам понадобилось запустить любую другую привилегированную программу, откройте терминал, станьте администратором при помощи команды su – и запускайте ее на здоровье. Это гораздо безопаснее, чем запускать от имени администратора целый рабочий стол (при условии, что вы завершите root-сессию, начатую su, как только в ней отпадет необходимость).
Впрочем, switchdesk никуда не делась. Выберите Add/Remove programs (Добавить/Удалить программы) из меню Applications (Приложения) и наберите в строке поиска switchdesk – вероятно, вместе с switchdesk Вы получите switchdesk-gui. Установив программу, можно будет запустить ее через System > Preferences > More Preferences > Desktop Switching Tool (Система > Параметры > Дополнительно > Переключение рабочих столов). Но это не метод запуска программ от имени администратора: switchdesk предназначена для того, чтобы пользователь мог переключаться между рабочими столами, отсюда и название. Держите администратора в подобающем месте: заприте его в дальний ящик и извлекайте лишь в случае крайней нужды.
Необходимость в переустановке дистрибутива Linux возникает нечасто. На моем трехлетнем компьютере постоянно работает Linux – система неоднократно обновлялась, но ни разу не переустанавливалась. Переустановка не снимает проблему, она лишь удаляет среду, в которой проблема возникла… пока она не возникнет снова. Если Вы устраните проблему сами, не сметая всю систему, она уйдет навсегда (или, как минимум, ее будет проще устранить в следующий раз). НБ
5 Из исходников
В: В Linux я совсем зеленый, хотя она напоминает мне Amiga прошлых лет. После нескольких попыток, наконец, установил Fedora Core 5 (двойная загрузка с Win XP). Пробовал инсталлировать FreeBasic, следуя вашим инструкциям, но безуспешно! Похоже на то, что не распознается ./configure и некоторые другие ваши инструкции. Гордон Оутрим [Gordon Owttrim]
О: Одно из существенных различий между оболочками Linux и Amiga – Linux не включает текущую директорию в путь поиска по умолчанию, как это делала AmigaDOS. Поведение Linux безопаснее, но тогда при запуске скрипта или программы из текущей директории необходимо указывать полный путь. Текущая директория обозначается как ‘.’, поэтому ./configure означает «запустить программу или скрипт под названием configure, находящийся в текущей директории». Отсюда ясно, что команда ./configure срабатывает лишь в том случае, если файл configure в данной директории имеется.
Компиляция из исходных текстов обычно включает в себя распаковку архива, переход в каталог, созданный на предыдущем шаге, и запуск ./configure, сопровождаемый make и make install – например, вот так:
tar xf foo-1.2.3.tar.gz cd foo-1.2.3 ./configure make make install
Хотя это справедливо для 90% приложений Linux, есть немало исключений. После cd загляните в файлы README или INSTALL. Там содержатся специальные инструкции по компиляции и установке данного приложения. Так, если Вы хотите установить FreeBasic из исходных текстов, понадобится станцевать configure – make – make install несколько раз после загрузки двух архивов. Альтернатива – воспользоваться скомпилированным бинарным архивом, FreeBASIC-v0.16b-linux.tar.gz, для которого необходим совершенно иной метод инсталляции, через собственный скрипт. Прочтите readme.txt внутри этого архива, чтобы ознакомиться с деталями инсталляции. Настоятельно просим Вас прочесть файл, а не воспроизводить наши инструкции, так как между версиями могут появиться некоторые различия. Файл readme.txt следует считать непреложным.
При инсталляции из исходных текстов всегда следует внимательно ознакомиться с инструкциями (в противоположность использованию менеджера пакетов), так как Вы отдаете команды от имени администратора, а это может неблагоприятно отразиться на состоянии системы в случае ошибки. НБ
6 OOo, как сложно!
В: По поводу OpenOffice.org 2.1 с DVD от LXF90: в Linux я недавно, поэтому не знаю ответа на свой вопрос, да и любой ответ мне, наверное, нужно будет «разжевать». Следуя инструкциям журнала, я попробовал установить OpenSUSE 10.2. Все шло гладко до тех пор, пока я не ввел
su -c “rpm -ivh *”
что выдало сообщение:
‘desktop-integration: not an rpm package (or package manifest): Is a directory’
Тут мои скудные познания и кончились. Проделал то, что казалось мне логичным, и перемещал папку desktop-integration повсюду, но ничего не помогало. Пробовал обойти проблему со всех сторон, пока не понял, что просто блуждаю во мраке. Николас Кейтер [Nicholas Cater]
О: Если оболочка замечает в командной строке *, то она заменяет эту звездочку на все под ходящие файлы – звездочка означает «соответствие любой строке»; в вашем случае, всем RPM-файлам и директории desktop-integration. Будьте конкретнее и используйте
su -c “rpm -ivh *.rpm”
Теперь это соответствует всему, что оканчивается на .rpm, а вам другого и не надо. Если вы хотите инсталлировать RPM-файлы из директории desktop-integration, разверните команду следующим образом:
su -c “rpm -ivh *.rpm desktop-integration/*.rpm”
Заметьте, что простая добавка desktop-integration/* не сработает, так как не все файлы в этой директории являются RPM-пакетами, и вы вернетесь к первоначальному сообщению об ошибке. МС
7 Модем занемог
В: С вашего диска [LXF87] установил Mandriva 2007 на Dell 5150. На Dell нет ни параллельного, ни последовательного портов, только USB. У меня Sitecom 56k V.92 USB-модем, модель DC-009, но я не смог подключить к нему Mandriva. USB-мышь и клавиатура работают прекрасно. Командой modprobe я загружаю модуль cdc_acm, но он не подключается к tty, хотя KPPP видит ttyS0 и ttyACM0 и сообщает ‘modem busy’ [модем занят], когда я запрашиваю модем по ttyS0 или по ttyACM0.
Напрасно я прочесывал Сеть, в том числе http://www.linux-usb.org. А на Windows XP модем без проблем заработал. Разве эти проблемы не ушли в прошлое? Мартин Лоуренс [Martin Lawrence]
О: Может оказаться, что модем либо не полностью поддерживается, либо требует некоего firmware. Вы не смогли найти сведения о нем в Сети – но это неудивительно. Многие из таких устройств производятся одним изготовителем, а выпускаются под маркой другого. Но чтобы получить право на продажу в США, все они нуждаются в утверждении FCC (Federal Communications Commission, Федеральной комиссии по связи), поэтому узнать о том, что они из себя представляют, можно по их ID-коду FCC. Введите код в поле внизу страницы http://www.hardwaresecrets.com/page/fcc, и вы узнаете, кем изготовлен Ваш модем. Подкрепленный добытой таким образом информацией, поиск на сайтах вроде http://www.linux-usb.org окажется гораздо более плодотворным.
Еще одна сложность вашей ситуации – USB-модемы недостаточно стандартизованы, лишь немногие из них соответствуют спецификации CDC-ACM. Ваши клавиатура и мышь хорошо работают именно потому, что отвечают требованиям стандарта (USB HID). Один из вариантов обхода проблемы состоит в использовании последовательного модема через специальный USB-адаптер. У меня есть пара таких штучек, с разными чипсетами (обе недорого куплены на eBay), и они хорошо работают со всеми последовательными устройствами, которые я пробовал (за исключением ИБП). Таким способом можно использовать не только модем, но и любое необходимое Вам последовательное устройство. Мы-таки избавились от параллельного порта и трехдюймового дисковода, но старый последовательный порт упорно не желает сдаваться. НВ
8 Вопрос Qemu
В: Меня интересует эмулятор Qemu, но он не работает так, как описано в вашем журнале. Сообщает, что ему нужен GCC 3, а на OpenSUSE 10.2 есть только GCC 4. Могу я узнать, опробует ли хоть кто-то еще из вашего коллектива различные ваши программы и идеи, прежде чем публиковать их в журнале? Джозеф Лэм [Joseph Lamb]
О: Qemu – одна из очень немногих программ, пока не работающих с GCC 4, и досадно, что новые дистрибутивы вроде OpenSUSE больше не включают пакетов GCC 3. Но Вы можете установить GCC 3 как из исходных текстов, так и из пакетов от Fedora Core 5, которые, по нашим сведениям, работают с OpenSUSE 10.2.
Однако для единственной программы это слишком трудоемко, проще найти готовые пакеты. Один из пользователей OpenSUSE 10.2 скомпилировал Qemu и выложил его по адресу http://www.hasanen.com/files/linux/qemu.tar.gz. Есть пакеты и на сайте SUSE. Укажите браузеру на http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/i586 и щелкните на файле Qemu (текущее название qemu-0.9.0-3.i586.rpm, но к моменту выхода журнала оно может измениться). В ответ на вопрос браузера о том, как поступить с этим файлом, выберите «инсталлировать» и «дождаться, пока файл будет загружен и инсталлирован» (введите пароль администратора, когда потребуется).
Можно установить Qemu и из командной строки:
su -c “rpm -ihv http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/i586/qemu-0.9.0-3.i586.rpm”
Мы всячески заботимся о достоверности нашей информации, не исключая тестирования инструкций разными людьми. Но нет никакой гарантии, что любое действие сложнее echo Hello World безупречно сработает на любой конфигурации, и это печальное следствие огромного количества дистрибутивов и бесконечных мутаций различных пакетов на них. Добрая весть – новые версии Qemu должны быть совместимы с GCC 4. МС
9 cron: чистит до блеска
В: Устав вычищать следы спам-атак на мой сервер, я задумал построить cron-процесс для автоматизации работы, но не могу найти подходящей команды для этого. Буду благодарен за любой комментарий к моему коду:
mysql -h hostname -u username -ppassword -e‘delete from table_name where pn_cid > x’
На моем сервере не одна база данных, а строка моего кода не содержит упоминания об использовании конкретной базы – так, может быть, это холостой выстрел?
SwissMac, из форумов LXF
О: Указывать название базы данных все-таки необходимо (пусть она у вас и одна), иначе MySQL не будет знать, как применить команду. Название базы можно передать либо в качестве последнего параметра командной строки, либо среди других команд, передаваемых MySQL. Вот эквиваленты:
mysql -u user -ppword -e “delete from table_name where pn_cid > x” database_name mysql -u user -ppword -e “USE database_name; delete from table_name where pn_cid > x” mysql -u user -ppword - “delete from database_name. table_name where pn_cid > x”
Первый вариант проще, зато остальные более гибкие. Можно передавать команды клиенту MySQL конвейером вместо использования параметра -e. Это полезно, если нужно запустить несколько команд, так как можно поместить их в файл и делать так:
mysql -u user -ppword <cmdfile
Следует учесть, что программы, запускаемые в cron, попадают в среду, отличную от установленной в вашей оболочке. Имя пользователя отсутствует, поэтому переменные окружения, перечисленные в вашем профиле, не настраиваются. Это можно обойти, поместив следующие команды в небольшой скрипт:
#!/bin/sh source /etc/profile #или ~/bash_profile или ~/.bashrc mysql -uuser -ppword ...
Укажите файл, содержащий настройки вашей среды, во второй строке, и настройте cron так, чтобы он вызывал скрипт вместо непосредственного запуска MySQL. Использование скрипта немного облегчает тестирование, так как есть уверенность в том, что используемые команды действуют одинаково как в терминале, так и из-под cron.
Помещение пароля в командную строку считается небезопасным, так как при работе программы любой пользователь машины может узнать пароль, просто взглянув на вывод ps. Безопаснее будет поместить пароль в ~/.my.cnf, вот так:
[client] password=your_pass
и затем выполнить
chmod 600 ~/.my.cnf
Теперь этот файл сможет прочесть лишь Ваш пользователь. НБ
10 От меня к тебе
В: Как изменить адрес ‘from’ (от) при использовании Linux-команды mail? Она настаивает на пометке сообщения как user@user-laptop (user-laptop – это мое имя хоста). hubris, из форумов LXF
О: Со стандартной командой mail это невозможно без игры с переменными окружения USER и HOSTNAME, которая может повредить другим программам, работающим в той же оболочке. Зато есть много других программ, способных исполнить Ваше желание. Если у Вас установлена Mutt, то она может взять адрес «от» из переменной окружения EMAIL. Но если нет, и Вам нужно лишь настроить отправку сообщений, Mutt чересчур громоздка. Альтернатива попроще – SMTPClient (http://www.engelschall.сom/sw/smtpclient), в работе она напоминает mail, но принимает аргумент --from для установки адреса «от». SMTPClient отправляет сообщения на соответствующий SMTP-сервер, по умолчанию – на localhost. Если нужен другой сервер, то его имя можно указать в параметре командной строки --smtp-host, а можно настроить переменную окружения SMTPSERVER.
echo “Hello world - what else?” | smtpclient --smtp-host=my.mail.server --from=hubris@wherever --subject «Hello World» someone@someplace
ПХ
11 Спам достал
В: У меня небольшая офисная сеть со своим почтовым сервером, на котором работает Sendmail в паре со SpamAssassin. Fetchmail забирает почту со всех POP3-серверов, затем она раскладывается по папкам пользователей, откуда они загружают ее к себе через qpopper. Вопрос касается SpamAssassin (у меня стоит последняя версия, т.к. я постоянно обновляю ее через CPAN): я хочу добиться того, чтобы письма от определенных отправителей (whitelist) никогда не воспринимались как спам, независимо от их содержания. Но SpamAssassin работает по принципу начисления «очков», а опция whitelist дает их слишком мало для того, чтобы повлиять на окончательное «решение». Я хотел было изменить принятое по умолчанию число очков для whitelist, но это оказалось невозможным. Получается, если члены списка whitelist отправят письмо и оно будет идентифицировано как спам, то whitelist «не помогает». Нет ли каких-то обходных путей? Я хочу добиться, чтобы SpamAssassin «пропускал» указанных мною отправителей или уж пускай вообще не проверяет письма от них. Какие возможны решения? Константин
О: Согласно описанию, опция whitelist_from дает коэффициент -100, что само по себе более чем достаточно – надо очень сильно постараться, чтобы легитимный клиент набрал более чем 100 баллов и был принят за спам. Для SpamAssassin, настроенного на индивидуальных пользователей (~/.spamassassin/user_prefs) можно указать опцию
whitelist_from d.cary@sparkingwire.com
Для общей настройки следует проделать то же самое в /etc/mail/spamassassin/local.cf (в зависимости от системы путь может меняться). Альтернативный метод – написать собственные правила вида:
header NOSPAMFROM From =~ /notaspamer\@ example\.com/i score NOSPAMFROM -100.0
Подробности можно найти по адресу http://wiki.apache.org/spamassassin/ManualWhitelist. Андрей Тусеев
12 Бесплатный сыр...
В: С тех пор, как у нас появился безлимитный GPRS-интернет, я постоянно ставлю телефон (в связке Bluetoth + KPPP) на закачку на ночь. Но иногда демон PPP «вылетает» с ошибкой, а так как я в это время обычно сплю, то обнаруживаю это только утром. Можно ли сделать автоматическое восстановление соединения при его разрыве или крахе демона ? Казанцев А.С.
О: Конечно, можно. Однако, способ решения этой задачи зависит от первопричины – т.е. от того, из-за чего именно «вылетает» pppd. Если соединение (случайно или намерено) обрывает оператор, можно воспользоваться средствами самого pppd – т.е. опциями persist (не выходить при обрыве соединения, пытаться перезвонить), holdoff (время ожидания перед следующей попыткой дозвона) и maxfail (число неудачных попыток, после которых демон все же завершит работу). Все они описаны в man и вы можете передать их (вместе с соответствующими параметрами) посредством KPPP – для этого в окне свойств учетной записи предусмотрена специальная кнопка «Customize pppd Arguments».Если же обрыв происходит локально (например, прерывается Bluetooth-канал или «подвисает» телефон, что тоже случается), придется писать специальный скрипт, который проверяет доступность аппарата и, в случае необходимости, производит повторную инициализацию. Валентин Синицын