Redis в качестве обслуживания на CentOs6

Я пытаюсь сделать Redis, чтобы работать как сервис на сервере CentOS 6, но я не могу сделать скрипт запуска, чтобы работать должным образом.

стартап скрипт распространяется с Redis не поддерживает утилиты chkconfig поэтому я нашел другой на GitHub в https://gist.github.com/tahajahangir/155176867afed0ff80ad однако линии 36 & 37:

Чаун ${REDIS_USER-Рэдис}:${REDIS_USER-Рэдис} /ВАР/работа/Рэдис
демон --пользователь ${REDIS_USER-Рэдис} "$Redis в $REDIS_CONF_FILE $REDIS_OPTIONS" 

выдают ошибки при запуске службы redis-server запустить. Я решил сначала ошибка про неверное имя пользователя Рэдис , изменив линию 36 к

Чаун корня:корневой каталог /var/работа/Рэдис

но я до сих пор оставшиеся ошибки:

/usr/Бен/каталог: лишний операнд `.пид'
Попробуйте `/usr/Бен/каталог --Help' для получения дополнительной информации.

Я пробовал несколько вещей, но я не совсем уверен, где этот "дополнительный" .пид откуда. Как я могу решить это?

+28
Kylie Beck Ferrer 20 мая 2017 г., 06:45:09
39 ответов

У меня коробка маленькая рука Debian в унисон-2.40 установлены. И ноутбук с Ubuntu, который, кажется, унисон-2.48

Я хочу синхронизировать их с хором. Но в Убунту (которая новее), кажется, не признают, явно попросили поработать с 2.40 (через -addversionno )

Можно ли убедить 2.48 притворяться 2.40 или есть пакет Ubuntu с 2.40 в нем, так что я могу синхронизировать эти две машины?

+995
Justine Armenta 03 февр. '09 в 4:24

Из указанных ниже линии мне нужны конкретные поля только в следующем формате:

031100000080,Z45G0001,09:43:08.5234999,09:43:09.7925597,0:1:269,737683

Ввод линии:

17/05/2019 09:43:09.792559|TraceDetail |UPBSStandardGenericBillPaymentComponent.PostBillPaymentTransacti|Общее время [125456] |783562 [11] [25458] | потребительскими количество [0345454545000 ] , UCID [Z456G0001] отправка [09:43:08.5234999] время [09:43:09.7925597] Общее время [0:1:269] стан [737683]
+983
Susan cox 23 апр. 2018 г., 06:43:06
Другие ответы

Связанные вопросы


Похожие вопросы

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

#!/бин/Баш

dup_words() {
 zcat выступает $1 | ТР '' '\п' | редактор sed '/^$/D' В | сорт | Ко -с | у awk '{если ($1 > 1) м=1; } конец { выход(!м) } '
}

ибо я в *.ГЗ
делать
 dup_words $я && Эхо $я
сделано

Он будет разделен линиями на каждом наступлении пробел, а затем удалить пустые строки, найти и посчитать экземпляры, и, наконец, проверьте, не более чем 1 раз.

Цикл просто выводит имя файла, и вы можете настроить действие после && , как вы хотите.

+888
corshine 23 нояб. 2018 г., 07:16:16

Это то, что shell-скрипты для; для запуска нескольких команд пока только введя одну. Ниже приведен краткий сценарий, который я думаю, делает то, что вы просили:

#!/Бен/ш

Тор & tor_pid=$!
будильник & polipo_pid=$!

сон 5
пианино

убить $tor_pid
убить $polipo_pid

Положить это в файл, может быть, в$Home/местные/Бен/startpiano, сделайте его исполняемым с помощью команды chmod +х $дома/местные/Бен/startpiano, и добавить $дома/местные/бен до конца свой путь переменной.

Это также то, что функции Shell длятого, чтобы логически различных задач. Вы можете создать функцию вроде этой оболочки:

startpiano () {
 Тор & tor_pid=$!
 будильник & polipo_pid=$!

 сон 5
пианино

 убить $tor_pid
 убить $polipo_pid
}

Это будет идти в одном из загрузочных файлов для вашей конкретной оболочки.

Редактировать: с отредактированный вопрос, я бы не советовал использовать псевдоним в качестве задания, теперь стали немного слишком сложным. Я оставлю хотя мой первоначальный текст о псевдонимах здесь нетронутыми.

Это также то, что псевдонимы для; делать простые вещи вы не хотите вводить снова и снова. Это, как вы установите псевдоним для него:

псевдоним startpiano="рынков &; Тор &; Пиано"

Это тоже пойдет в один из скриптов инициализации вашей командной оболочке.

Любой из этих трех решений позволит вам набрать

$ startpiano

для запуска программы вам нужно.

  • Скрипт имеет преимущество над раковиной функции и псевдоним, который он не добавляет больше веса оболочки инициализации файлов (помимо добавления его местоположения до конца путь переменной).

  • Функция Shell имеет преимущество над псевдоним, который позже можно добавить аргументы командной строки к нему (тоже сценарий), и что он читабельный (и во многом ведет себя так же, как свой собственный "сценарий").

  • Псевдоним работает, но на самом деле, только использовать псевдонимы, чтобы заменить очень простые вещи с более короткими все для блага ваших руках, как флаги командной строки для лс и т. д. (псевдоним LS="ЛС-Ф" - это только псевдоним у меня).

+841
Bartosz Brzoza 22 дек. 2014 г., 22:13:56

Я французский и я установить ArchLinux с Лукс на файловую систему Btrfs.

Логин: Я не могу монтировать файловую систему на /dev/sda2, потому что клавиатура находится в нас

Я пытаюсь изменить файл/etc/vconsole.конф в FR и генерировать локали поколения, но клавиатура не меняется при следующей загрузке.

+829
Fredyj 7 окт. 2010 г., 21:47:52

Они не затрагивают те же потребности по программе.

Аргумент командной строки-это известная программа на данный момент он начинается. Получение ввода от пользователя через stdin можно сделать в любой момент выполнения программы. Какие действия пользователя могут зависеть от того, что программа до сих пор выхода.

И аргументы командной строки, как правило, короткие входы, а через stdin вы можете получить любой контент, например, если пользователь перенаправляется на стандартный ввод из файла.

Как правило, аргументы командной строки параметры для программы, в то время как sandard входные данные должны быть обработаны. Иногда, вы можете использовать один или другой и сделает то же самое, иногда нет.

+811
methaq 7 сент. 2019 г., 11:36:11

Вам нужно использовать СЭДс функцией, называют группами (может быть не самая лучшая ссылка, попробуйте поискать по другим учебникам). В ВЫ случае решение

СЭД с/\([0-9]\)input_file.txt/\1\1/' 

регулярное выражение для первой группы \([0-9]\) будет соответствовать любой цифре, а часть \1\1 говорит, что на смену первой группе с себя повторять дважды.

+810
Michael Hedgpeth 22 апр. 2013 г., 11:17:21
{ а && б && с; } >capture_file 2>&1

Обратите внимание на порядок перенаправления: вы должны перенаправить первого вывода.

+762
Berk N 18 нояб. 2012 г., 17:13:25

Имхо, самый простой способ сделать это с postfix. Вы можете настроить его как свет исходящий реле с помощью этих команд:

postconf -е relayhost=other.mailserver.com
postconf -е myorigin=my.domainname.com

Как долго, как SMTP-сервер, указанный в промежуточного узла не требует проверки подлинности, позволяет реле или является действительным местом для получателя адрес, это будет работать.

В myorigin параметра будет имя домена по умолчанию. Так что если вы отправить почту на Foo это пойдет [email protected] Почта, отправленная на панель пользователя будет от [email protected]

Если вам нужно проверить подлинность и хотите поддержки TLS, также выполните следующие команды:

postconf -е smtp_tls_security_level=может
postconf -е smtp_sasl_auth_enable=да
postconf -е smtp_sasl_password_maps=библиотеки PCRE:/и т. д./постфикс/sasl_password_maps

Затем в файле/etc/постфикс/sasl_password_maps есть этот контент:

/./ логин:пароль

Вся почта будет отправлена на ваш промежуточного узла с указанным именем пользователя и паролем.

+738
Megaillexi 11 апр. 2016 г., 14:54:11

Еще на awk подход (возвращает -1 для пустых строк).

на awk -Ф'[^Н ]' '$0=НФ-1""' входной_файл

Или в комплексе, он будет возвращать -1 на пустые строки, 0 на пробелов (табов/пробелов) строк только.

на awk -ф'[^п \т]+' '$0=НФ-1""' входной_файл
+699
Mhlengi Mhlengi 7 авг. 2017 г., 12:01:41

Я могу узнать, что теряем пространство с этим:

 дю-см * | сортировка +0nr | глава -30

Но что, если "/" заполнен на 100%, и есть много точек монтирования, напр.: /фу, /foo2, и т. д. Как я могу получить список каталогов, в отл.: "/" это не точки монтирования? (рекурсивно не точки монтирования?)

Обновление: это не работает:

компакт-диск /; ду-sxm по * 2>/dev/нуль | сортировка +0nr | глава -30

поскольку списки каталогов, которые монтируются в экс.: "/ФОО" (попробовал эта под: AIX6.1 и SLES 9.4)

Обновление:

дю-хм / | рода +0nr | глава -30

это работает на AIX, а теперь что? :Д

+665
goatfatdoc 5 июл. 2011 г., 01:10:23

В язык высокого уровня, вы бы использовать массив массивов, но Баш не те. Проблемы, которые предполагают многоуровневую структуру данных, как это делает, как правило, очень нудно решить в оболочке.

Но поскольку ваша цель-научиться обработка текста в Unix, а не на Python, давайте решать ее в раковину.

В данном решении мы прочитать файл один раз, чтобы получить заголовки строк, а потом снова столько раз, сколько требуется, чтобы собрать необходимое количество элементов. Мы держим двух массивов: outrow массив выходных линий, с каждой линии, к которому присоединяются, как мы идем; курсор - это массив целых чисел, которое хранит наше место на каждой линии.

Обратите внимание, что этот скрипт будет бесконечный цикл, если не хватает элементов, чтобы удовлетворить запрос. Решение, что осталось в качестве упражнения для читателя.

#!/бин/Баш
к=$1
input=input.txt
объявить-outrow
объявить -курсор
К=0
н=0
пока чтение строки
делать
 outrow [ФП]=${строка%% *}
курсор[$Н]=1
 (( Н++ ))
сделано < $ввод

во время [[ $К-Л $к ]]
делать
н=0
 пока чтение строки
делать
 объявить -СЖ=( $строка )
 если [[ ${#полковник[@]} -ГТ ${курсор [ФП]} ]]
тогда
 outrow[$н]+=" ${Коль[ ${курсор [ФП]} ]}"
 (( курсор [ФП]++ ))
 (( К++ ))
 [[ $К-Л $к ]] || перерыв
интернет
 (( Н++ ))
 сделано < $ввод
сделано

для строки "${outrow[@]}"
делать
 Эхо "$строка"
сделано
+655
David Burchett 4 нояб. 2013 г., 10:09:12

в ISC-DHCP-сервер-это новое название для dhcp3-сервером пакет, так что это ожидаемое поведение. Сержант Debian-это довольно старая, так что можно ожидать, что учебник должен быть устаревшим.

+636
Robert Franz 8 февр. 2010 г., 13:52:47

Если поставить "^" вне кавычек, ваш снаряд может интерпретировать его как редирект. Цитирую его избегает этой проблемы. Что считается устаревшим, но вы можете найти его упоминаются, например, в changelog для рыбы:

Каре ^ теперь только делает поток stderr перенаправление, если он является первым символом знак, делая ГИТ пользователей счастливыми #168

Для дальнейшего чтения:

Вы можете использовать каре, '^', в качестве замены для трубы символ '|'. Это происхождение от главного предшественника, Томпсон оболочки. (Исключение составляет версия 8 оболочки, которая распространена не слишком широко, где эта функция была удалена при очистке конструкции.)

+634
Fu Yu 1 окт. 2014 г., 14:19:27

Пустой набор разрешений может быть представлен с -:

команда setfacl -СД о::- mydir

Это, кажется, не быть документированы, так что я не знаю, как портативный это. Однако, в документации не упоминается, что они могут быть определены как восьмеричное число (4 р, 2 Вт, 1 х, как в chmod), так:

команда setfacl -СД о::0 mydir
+612
Farhad Kocharli 26 июн. 2012 г., 22:09:15

Пытаюсь в командной строке, чтобы открыть архив в Windows открывает соответствующую программу для расширения файла без вопросов, например, с помощью этой команды откроет архив с моего архива менеджер по умолчанию обслуживания .RAR-файлов.

 $env:temp/SuperArchive.rar 

Почему на Linux, я не могу открыть архив или извлечь его только при помощи подобной команды, как

~/tmp/SuperArchive.tar.gz 
+606
neutron2md 16 мар. 2014 г., 18:22:58

У меня сегодня аналогичная проблема, и я нашел другой хост, позволяющие протокол SSLv3, так что весь сервер реагирует на подключения по протоколу SSLv3.

Итак, убедитесь, что никто из Ваших хозяев есть протокол SSLv3 активный.

+596
Irving Mora 9 февр. 2016 г., 07:13:28

Если вы хотите постоянства, всегда использовать systemctl для остановки, запускаи перезапуска. Что заканчивается с помощью apache2ctl программы - теперь через файл/etc/инит.д/apache2 не сценарий, но, вероятно, из собственного systemd в блок файл в будущем.

systemd в не знаете, когда вы использовали apache2ctl напрямую, возможно, в результате (как вы увидели) в ситуации, когда systemd не думает, что apache2 не все еще находится в неисправном состоянии, когда это на самом деле работает нормально.

Для configtest и статус, использовать apache2ctl. Они просто запрашивают Апач без изменения его состояния.

+553
Enrighteous 20 дек. 2012 г., 00:56:55

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

найти . ! -имя '*.*'
+552
komp88 21 апр. 2018 г., 19:31:57

Я хотел бы быть в состоянии применить те же пользовательские привязки клавиш и ярлыков на текстовые редакторы для все мое окружение рабочего стола.

Я хочу переназначить мои системные клавиатуры, а не только в определенном окне приложения. То есть, когда я переназначить сочетание клавиш Alt + J В = вниз, я хочу, нажав клавишу Alt + J на клавиатуре, чтобы быть таким же, как нажатие на клавишу "вниз", насколько мое окружение рабочего стола обеспокоен.

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

# Обратите внимание, как
общесистемные # замена *один* ключи можно с параметр xmodmap.
Капс Лок --> Побег
Побег --> крышки блокировка крышки переключатель замок с
 # более полезные клавиши Esc.
 # Как *все* приложения 
 # обеспокоены, нажав капс лок 
 # на самом деле нажав клавишу Escape. 

# Однако, я не нашел хороший способ сделать то же самое для нескольких ключей:
Alt + пробел --> Стрелка вправо
сочетание клавиш Alt + побег --> введите
шифт + альт + ч --> клавишу Backspace
АЛТ + х - > удалить
шифт + АЛТ + л - > удалить

сочетание клавиш Ctrl + АЛТ --> Альт # функции Alt по умолчанию 
 # переназначить на Ctrl + АЛТ

В моем текстовом редакторе, это творит чудеса с моей точностью, скоростью, и это помогло мне чрезвычайно с боли в сухожилие я, поскольку мои руки теперь не нужно покидать свои позиции отдыхая.

Первая почти удачная попытка решения:

С помощью xbindkeys для вызова xvkbd (X виртуальная клавиатура). Это пример из моей .xbindkeysrc:

# ч-J-К-Л движение
###################
 "xvkbd -xsendevent -Text "и\[вниз]""
 сочетание клавиш Alt + J в

 "xvkbd -xsendevent -Text "и\[вверх]""
 Alt + з

 "xvkbd -xsendevent -Text "и\[слева]""
 сочетание клавиш Alt + ч.

 "xvkbd -xsendevent -Text "и\[право]""
 АЛТ + л

Проблемы:

В Альт клавиша обычно клавиша по умолчанию для вызова меню приложения (например, Alt + Ф воспитывает *Ф*иле выпадающее меню в большинстве приложений).

Кроме того, это, кажется, работает с некоторыми приложениями, в то время как другие, кажется, игнорировать его.

xbindkeys не переназначить клавиши на клавиатуре, он просто говорит xvkbd, чтобы послать сигнал, который иногда может создавать конфликты при активном применении (в отличие от параметр xmodmap, который действительно перераспределяет клавиатуры).

Цель

Общесистемный переназначения клавиатуру, реализован таким образом, что является легко переносимым (в RC-файл или что-то подобное).

АЛТ - это оптимальный ключ выбора, поскольку сочетание клавиш Ctrl широко используется в различных приложениях, и Мод ключ занимает свою панель (Xmonad).

Моя установка

Я с Ubuntu 12.10, с Xmonad среды рабочего стола.


Это выполнимо? Я пока не много знаю об ОС-уровень и как он обрабатывает входной сигнал.

+509
Sam Keopraseuth 19 июн. 2011 г., 14:01:28

$ общ. ./dir_with_huge_amount_of_files/ошибки/

Предположим, каталог с картинками с Unix временные метки, я имею в виду много, измеренные во многих ГБС или даже больше. Шелл-команды, как ЛС будет переполнение-стиль предостережения, поскольку они не предназначены для работы с миллионами (или больше) фотографий. Как я могу управлять таким огромным количеством файлов? Если, например, я хочу найти картинку в середине (по дате в названии и времени создания), есть какой-то файл-системы, которые предлагает встроенную функцию поиска? Какие команды вы бы использовали? Я попробовал комфортной лс и найти необходимые флаги, но они были либо очень медленно, либо предупреждения, так что я думаю, что либо мне нужно лучше файловой системы или БД или что-то подобное предварительно индексировать картинки. Мне в принципе нужен один массив, в который иноды фотографии должны быть помещены в хронологическом порядке. Как это сделать? Позже, метаданных с Unix-метки могут быть добавлены.

[Обновление]

Есть серьезное упущение в современных ответов, люди просто пост какой-то-ответы без эмпирических исследований. Если бы они проверили свои предложения, они, вероятно, не удастся. Значит, я создал вам инструмент командной строки, с помощью которых вы можете создать в песочнице, чтобы создать огромное количество файлов и проверить свои предложения, как с 1e7 количество файлов. Это может занять много времени для создания файлов, так что будьте терпеливы. Если кто-то знает более быстрый способ сделать это, пожалуйста, редактировать код. Типа питона code.py --помочь , чтобы получить помощь. Получайте удовольствие!

Пример использования для создания большое dirred файлов

$ общ./данные2
ЛС: ./данные2: нет такого файла или каталога
$ питона testFill.py -н 3 -д 7 
$ дерево данные2/ 
данные2/
|-- 0
| |-- 1302407302636973
| |-- 1302407302638022
| `-- 1302407302638829
|-- 1
| |-- 1302407302639604
| |-- 1302407302641652
| `-- 1302407302642399
|-- 2
| |-- 1302407302643158
| |-- 1302407302645223
| `-- 1302407302646026
|-- 3
| |-- 1302407302646837
| |-- 1302407302649110
| `-- 1302407302649944
|-- 4
| |-- 1302407302650771
| |-- 1302407302652921
| `-- 1302407302653685
|-- 5
| |-- 1302407302654423
| |-- 1302407302656352
| `-- 1302407302656992
`-- 6
 |-- 1302407302657652
 |-- 1302407302659543
 `-- 1302407302660156

7 каталогов, файлов 21

TestFill.py код

Автор#: ННН
Лицензия№: лицензия мск 

импорт ОС, математике, времени, optparse, Сыс

деф createHugeAmountOfFiles(fileAmount, dirAmount):
 счетчик = 0
 Плотность = 1e7
 реж = "./данные/"

 ул. сделать = реж+(счетчик)+"/"
 а (ОС.путь.существует(у)):
 счетчик = счетчик+1
 ул. сделать = реж+(счетчик)+"/"

ОС.функция mkdir(делать)

 для D в диапазоне(инт(dirAmount)):
 для F в диапазоне(инт(fileAmount)):
 раз все = инт(время.время()*1e6)
 если (не ОС.путь.существует(у)):
ОС.функция mkdir(делать)

 если (раз все % плотность == 0):
 счетчик = счетчик+1
 ул. сделать = реж+(счетчик)+"/"

 если (не ОС.путь.существует(у)):
ОС.функция mkdir(делать)


 ул. сделать = реж+(счетчик)+"/"
 если(не ОС.путь.существует(у)):
ОС.функция mkdir(делать)

 Ф = открыть(ул. У+(раз все), 'Вт')
 Ф.писать("автоматически созданный файл, чтобы проверить огромное количество файлов.")
Ф.закрыть()
 счетчик = счетчик +1


деф ЛС(реж):
 для root, каталоги, файлы в ОС.прогулка("./данных/"+реж):
печати(файлы)

деф РМ(реж):
 для root, каталоги, файлы в ОС.прогулка("./данных/"+реж):
 для F в файлах:
ОС.удалить("./данных/"+реж+"/"+Ф)


деф parseCli():
 парсер = optparse.OptionParser()
 парсер.add_option("-Ф", "--" файл, дест="имя_файла",
 помогите="место, чтобы удалить только файлы в ./Данных.", файл metavar="")
 парсер.add_option("-Н", "номер", дест="число",
 помогите="количество файлов для создания", metavar="количество")
 парсер.add_option("-Р", "--удалить", дест="удалить",
 помогите="данные -реж содержимое, чтобы удалить", metavar="количество")
 парсер.add_option("-д", "--реж", дест="реж",
 помогите="сумма Дирс генерировать", metavar="количество")
 парсер.add_option("-м", "- тихо",
 действие="store_false", дест="подробный", по умолчанию=true,
 помогите="не печатать сообщения на stdout")

 возвращение парсер.parse_args()

деф главным образом():
 (опции, аргументы) = parseCli()

 если (параметры.именем):
общ.(варианты.именем)
 если (параметры.количество и варианты.реж):
 createHugeAmountOfFiles(варианты.количество, варианты.реж)
 если (параметры.удалить):
РМ(варианты.удалить)


главная()
+462
Joey Ciechanowicz 17 июн. 2016 г., 10:18:46

Но они дают указания, как

компакт-диск downloaded_program
./настроить
сделать установить

Это создает эльфа, который нужен, и, вероятно, некоторые .так файлы.

Почему не посадили тех, кто внутри zip-файл для загрузки, как с приложения для Windows? Есть ли причина, почему они должны быть составлены пользователей?

+457
user2471 12 сент. 2014 г., 04:46:01

На аудит безопасности выполняется на наших серверах производства Linux , мы попросили убирать никто не пользователей если приложение не использует его.

Я проверил и видел, что нет файлов, принадлежащих "никто" пользователей.

найти / -пути /прок-чернослив -о-пользователя Nobody -общ.

"никто" пользователь не имеет оболочки, точно так же любой пользователь, который не имеет входа, он может представлять никакой угрозы безопасности? Целесообразно ли их удалить без оболочки?

# грэп никто не в /etc/passwd с
никто:х:99:99:никто:/: с/sbin/nologin

Пожалуйста, дайте ваши мысли.

+456
simplycoding 29 дек. 2015 г., 10:20:08

Я использовал эту команду, чтобы получить IP-адрес моей рабочей станции (ОС Х 10.14.5 ) в скрипте, но я интересно, если кто-то есть/ОС X имеет лучшее решение.

команду ifconfig en0 | grep в маску | вырезать -д" " -Ф2
+392
fachexot 15 апр. 2019 г., 04:09:50

Основываясь на некоторые образцы: http://www.commandlinefu.com/commands/view/176/update-twitter-via-curl

Я пытаюсь обновить свой статус в Twitter из командной строки (через завиток), но всегда получаю сообщение об ошибке. Любая идея, что я делаю неправильно?

локон -у <анонимных> -д статус="тест № завиток" -D источник="завиток" https://twitter.com/statuses/update.xml
Введите хозяина пароль для пользователя '<анонимных>':
<?формат XML версия="1.0" кодирование="UTF-8"?>
<ошибки>
 <код ошибки="34">К сожалению, эта страница не существует</ошибка>
</ошибки>

Или, возможно, у вас есть альтернативное решение для этого (может быть, не за завиток)?

+381
Dezney 29 авг. 2019 г., 16:27:40

Предполагая, что XML правильно сформирован, такие как

<?формат XML версия="1.0" кодирование="UTF-8"?>
<конфигурированию сервиса>
 <service_info имя="dummyapp" версия="5.0"/>
 <имя объекта="WebApplications">
 <этот товар="dummyapp/ухо/dummyapp.уха" наименование="пустышка"/>
</объект>
 <имя объекта="jdbc_oracle_nonxa">
 <пункт Параметры db_name="MYDB1" пользователь_базы_данных="dummyapp_user" global_trans="нет" initial_size="10" jndi_name="dummyapp-Аты-ДС" аргумент max_size="25" наименование="dummyapp-Аты-ДС" statement_cache_size="10"/>
</объект>
</конфигурированию услуги>

(Я закрыл теги, которые не были закрыты в вопрос)

... то следующим будет выход 25 (для данного примера):

в XML Сэл-Т-V '//пункта/@аргумент max_size' -НЛ file.xml

Это с помощью XMLStarlet , чтобы получить значение из массив атрибутов всех элементов узлов. В -НЛ в конце вставляет новую строку после вывода.

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

в XML Сэл-Т-V '//объекта[@имя="jdbc_oracle_nonxa"]/пункта/@аргумент max_size' -НЛ file.xml

Обратите внимание, что XMLStarlet устанавливается как xmlstarlet , а не в XML на некоторых системах.


С помощью xmllint (без перевода строки в конце вывода):

строки xmllint --в XPath '(//объекта[@имя="jdbc_oracle_nonxa"]/пункта/@аргумент max_size)' file.xml
+337
godidier 18 апр. 2013 г., 01:09:18

Это, как ожидается, убедитесь, что вы понимаете вариант (человек сортировать: разделитель полей). Команду, которую вы хотели использовать предложения с обычного IP-адресов.

Быстрый и грязный решение может быть преобразовать пробелы на точки . файл сначала, а потом сортировать (вы можете отменить преобразование позже, кроме IP-адреса)

СЕПГ -я.бак с/ /./г'данных.журнал
род-н-т . -К2,2 К3,3 -К4,4 -К5,5 данных.журнал

Обратите внимание, что я перешел на индексы. Дать ему попробовать.

+302
backup 13 нояб. 2012 г., 12:06:41

Работу можно дополнительно управлять, посылая соответствующие сигналы (используя убивать команду, например).

Вы можете попробовать это:

  • выполнения некоторых длительных команд (да , например, а с его выхода, мы видим, что процесс запущен)
  • нажмите сочетание клавиш Ctrl + Z и
  • определить PID процесса: pgrep да
  • возобновить процесс (эквивалент БГ или ФГ), используя: убить-cont <идентификатор процесса>, где <идентификатор процесса> - это идентификатор процесса определено в предыдущем шаге
+262
prateekkathal 22 июл. 2013 г., 17:18:54

Вы можете использовать переключатель для того чтобы найти все страницы, содержащие ч в имени или их краткие описания. Тогда просто grep для тех, которые начинаются с ВГ. Команда кстати приравнивается к человеку -к.

Пример

$ человек -к Втч | грэп "^ч"
что (1П) - выявить кластеры с единым хранилищем файлов (разработка)
чтотакое (1) - отображение описания всех страниц 
гденаходится (1) - Найдите бинарного, источник и страница руководства файлы для команду
которая (1) - показывает полный путь команды (оболочки).
а (н) - выполнить скрипт повторно, пока условие выполняется
настоящих (1) - отображение диалоговых окон из скриптов 
whirlwindwarp (6х) - сумасшедший движущихся звезд
whline (3х) - создать границы проклятий, горизонтальные и вертикальные линии
whline_set (3х) - создать проклятий границ или линий с использованием сложных символов и представлений
кто (1) - показать, кто вошел в систему
кто (1П) - дисплей, который находится на Система
whoami (1) - печатать эффективный идентификатор пользователя
в whois (1) - клиент для сервиса Whois 

Поиск по страницам человек

Если вы решили искать через Man-страницах делать полнотекстового поиска можно использовать коммутатору. Это прописная К.

Пример

$ человек -ш -к символическим | начальник -10
/usr/местные/доли/человек/докладчик 1/mimeopen.1
/usr/местные/доли/человек/докладчик 1/тип.1
/usr/местные/доли/человек/докладчик 1/ptksh.1
/usr/share/man/man1/as.1.gz
/usr/share/man/man1/atop.1.gz
/usr/share/man/man1/atopsar.1.gz
/usr/share/man/man1/attr.1.gz
/usr/share/man/man1/autoreconf.1.gz
/usr/share/man/man1/bakefilize.1.gz
/usr/share/man/man1/bash.1.gz

Этот метод не дает название страницы, ни хоть короткое описание. Это только показывает фактическое имя файла, что MAN-страница хранится в, который, как правило, имя команды.

+248
Anju Fabulina 7 июн. 2010 г., 03:14:51

Нм игнорирует перевозчик-потерянный сигнал в течение 5 секунд, прежде чем выключать устройство. Тайм-аут в настоящее время не настраивается (и в некоторых случаях тайм-аута даже продлен до 10 секунд). Это действительно так, ведь иногда перевозчик может уйти на минутку, например, при изменении MTU или потому что коммутатор решает.

Я не знаю простого решения, если вы хотите подключить кабель быстрее 10 секунд. Конечно, вы можете оформить nmcli устройство повторно "$ДЭВ" или nmcli подключения "$кон", но это требует дополнительного ручного вмешательства с вашей стороны.

+236
Mina Gourlay 4 сент. 2017 г., 11:26:01

У меня есть функция Баш объявлен вот так:

функция Foo {
 Echo "это фу";
}

Я не называл экспортно-Ф фу, но он по-прежнему был доступен в подоболочек.

Однако, как правило, когда я объявляю функцию, как это вместо:

функция Foo(){
 Echo "это фу";
}

тогда мне нужно позвонить:

экспортно-Ф ФОО;

мне показалось, это есть ли разница в экспортных поведения в различных синтаксических декларации?

Обратите внимание, что мне не нужно экспортировать функции, насколько я могу сказать, когда я только что сделал:

. my_script_with_foo_in_it.sh # это в ~/.файл/.bashrc следующее

потом в оболочку Bash, я мог бы назвать:

фу

без каких-либо проблем, даже без экспорта функции.

+212
K1 N 14 апр. 2015 г., 14:34:40

Я не знаю, почему этого не было раньше...

судо убить -9 1

Паникует с сообщением "пытался убить инит".

+201
lifeofmle 15 нояб. 2016 г., 06:23:21

Вот ваши правила в отношении входящий трафик на порт 2222:

в iptables -a ввод -я через eth0 -п ТСР-спорт 2222 -м государство --государство установило -Джей принимает
в iptables -a ввод -я через eth0 -п УДП-спорт 2222 -м государство --государство установило -Джей принимает 

Вы не позволяете новых подключений, поэтому вы не сможете подключиться извне.

Этот вопрос теперь может быть интересна.

+195
Pedro Monteiro 19 авг. 2019 г., 14:09:59

С СЭД, вы могли бы написать и так:

СЭД '/\([^:]*\):.*{ИПА|\([^}]*\).*/!д;с//\1 \2/;с/,,г;:1
 с/\(\([^ ]*\).*\)|/\1\п\2 /;Т1'

Срыв (к @ОДС, спасибо)

Приведенная выше команда может быть разбита следующим образом:

  1. Анализировать входные данные в случаях, когда: ... {ПНД|...} и удалить несовпадающих линий.

    В /выкройка/!д; ы//расх/

    Мы [д]iscard строки, которые не[!] соответствуют шаблону, а затем повторно использовать тот же шаблон в следующей команде замена [с] (пустой шаблон означает использования последнего рисунка). Вместо [г]уд алении не совпадающих строк, мы могли бы оставить их в первозданном виде, с использованием б вместо д, Или если мы знаем, что все линии соответствуют образцу, мы могли бы использовать с/выкройка/репл/ напрямую.

    /\([^:]*\):.*{ИПА|\([^}]*\).*/
    

    Этот шаблон разделяет данные на 2 части. Первый чанк , когда:. Этот бит кода, \([^:]*\): сказали принимать все герои, пока вы не столкнетесь с : и сохранить его в темп. переменная (\1).

    Все персонажи между : вплоть до {ПНД| пропускаются. Следующий бит, который спас все после МФА|. Это делается этот блок кода, \([^}]*\), который говорит, чтобы сохранить весь код до тех пор, пока } встречаются. Это сохраняется в переменной (\2).

    Примечание: в СЭД любое время вы хотите сохранить часть строки, вы можете обернуть его в скобки. Они должны быть экранированы с \ так, что СЕПГ знает, что ты не имел в виду буквальное парень. Как так: \( savethis \).

    пример

    $ СЭД с/\([^:]*\):.*{ИПА|\([^}]*\).*/\1 \2/;' sample.txt
    когда /wɛn/|/ʍɛn/
    
  2. Удалить все символы косой черты (/)

    Это выглядит более сложным, поскольку он использует альтернативный сепаратор. Вы бы обычно использовать форму с///г, но СЭД позволит вам сделать разделители на лету, поэтому мы используем запятые, а не (с,,г). Этот блок ищет / и заменяет их нечем.

    пример

    $ СЭД '/\([^:]*\):.*{ИПА|\([^}]*\).*/!д;с//\1 \2/;с/,,г;' sample.txt
    когда wɛn|ʍɛn
    
  3. Перебрать каждый ИПА

     :1 сек./\(\([^ ]*\).*\)|/\1\п\2 /;Т1
    

    Это, безусловно, самый сложный компонент этого решения. Это трудно понять, что происходит, но этот блок представляет собой условное ветвление.

     команда ярлыка(ов) Т 
    

    Метки :1 команда(ы) с/\(\([^ ]*\).*\)|/\1\п\2 /; и Т этикетка является "тестом", который видит, если предыдущая команда изменила модель пространства. Если так, то переход на метку 1, следовательно, Т1.

  4. Команды внутри цикла

    Если мы берем ярлык ... петли за секунду, и увеличить наши МПА примеру так, что он имеет 3, Вы можете увидеть, что происходит немного лучше.

    {{ПНД|/wɛn/|/ʍɛn/|/мля/}}
    

    Мы закончим с этим, с помощью предыдущих команд на данный момент.

    когда wɛn|ʍɛn|мля
    

    Если сейчас мы запустим этот:

    $ Эхо ", когда wɛn|ʍɛn|бэ" | СЭД с/\(\([^ ]*\).*\)|/\1 \2 /;'
    

    Мы получаем это:

    когда wɛn|ʍɛn
    когда мля
    

    Вы можете видеть, что он делает сейчас? Да я тоже, поэтому давайте упростим еще немного, и возьмите символ новой строки () и своп в несколько коротких строк.

    простой пример

    $ Эхо "х С1|С2|С3" | СЭД с/\(\([^ ]*\).*\)|/\1 \2 /;'
    Х С1|С2 Х С3
    

    Теперь, что происходит здесь заключается в том, что код \(\([^ ]*\).*\)| умный в том смысле, что он вложенности в скобки, так что они такие ( ( ) ). Что соответствует внутри скобки-это все, что не пространство. Это сделать это , когда строку. Внешние скобки соответствовать все, вплоть до последней трубы (|).

    Другие интересные факты С этот фрагмент кода является то, что скобки упорядочены таким образом, что внешние хранятся в \1 , а внутренние - \2. Это потому, что седьмого числа, основываясь на порядке, в котором они встречаются.

    Вы можете убедить себя в этом, расширяя фрагмент с дополнительными \1и \2'ы.

    $ Эхо "х С1|С2|С3" | СЭД с/\(\([^ ]*\).*\)|/\1 \1 \1 /;'
    Х С1|С2 Х С1|С2 Х С1|С2 С3
    
    $ Эхо "х С1|С2|С3" | СЭД с/\(\([^ ]*\).*\)|/\1 \2 \2 /;'
    Х С1|С2 Х Х C
    

    Поэтому команда внутри цикла-это в основном беру х 2 раза. Когда-то, как часть целого х С1|С2 (вне скобок) и второй раз как-нибудь в пространстве (внутри скобок).

  5. Вернемся к условной ветку

    Итак, ветка в основном буду называть команду в #5, для айфон, где насчитывается более 2. СЭДс ветки строить будет держать повторного выполнения команды, пока команда не изменяет замещения, в какой момент он останавливается.

    пример

    $ Эхо "х С1|С2|С3" | Е:1 сек./\(\([^ ]*\).*\)|/\1\п\2 /; Т1'
    Х С1
    Х С2
    Х С3
    

Надеюсь, вышесказанное поможет другим прохожим в этот ответ в будущем.

+153
roryok 18 мар. 2014 г., 06:32:02

Если файл скомпилирован с -пье (положение независимые исполняемые), такие как :

ССЗ -пирог -спосил привет.с

Тогда у вас есть :

файл#. /а.из 
а.из: эльф 64-бит младший бит общий объект, для архитектуры x86-64, Версия 1 (с SysV), динамически связан (использует разделяемые библиотеки), для Linux 2.6.24, BuildID[в SHA1]=0x2afb7892000a1dc5b9010c591b75987188aa2d66, раздели

Если вам нужна дополнительная информация , Вы можете посетить позиционно-независимый код

+133
BBM 26 мая 2016 г., 10:45:54

setenv - это хсг-только команду, но система() выполняет свои доводы через оболочки Bourne (/bin в/ш), а не КШ. Вы хотите, чтобы команду для экспорта переменная=значение для оболочки Bourne.

Однако, даже если вы делаете это, это будет неэффективно. системы() запускает новую оболочку и выполняет команду в оболочке. Как только команда заканчивает, что Shell и ее окружения — исчезают. Так переменную окружения установить быстро исчезает.

Что вам нужно сделать, это использовать на awk , чтобы получить список хсг команды для запуска и выхода то (не пытайтесь запустить их). Затем нужно сделать оболочку, которая называется на awk читать на awk'ы выходной и запустить его:

ивал `команду awk`
+128
tallamjr 8 июл. 2014 г., 21:39:48

У меня есть проблема с моим Linux, когда я пытаюсь закрыть его.

инит 0

Я получаю следующую ошибку:

death_handler: фатальный сигнал 15 получили
справочной recvref[30]: протокол недоступен

Системе будет заблокирован. Иногда он выключается через некоторое время, иногда нет.

Как я могу решить эту проблему? Система должна быть эффективной в этом плане.

Должен ли я изменить что-то в systemd в?

+106
Kaycia Shakes 4 авг. 2010 г., 12:10:15

файловая система XFS управляет квота отличается от других ФС. И вам нужно активировать флаг rootflags=квота в /и т. д./По умолчанию/харч.

Подробно: редактировать /и т. д./По умолчанию/харчи, добавив или изменив значение

GRUB_CMDLINE_LINUX="rootflags=квота"

запустить update-grub и выполняет перезагрузку. Квота должна быть активирована. Этот процесс может немного отличаться в зависимости от дистрибутива.

+76
Richard Kranendonk 27 апр. 2014 г., 00:11:46

Если вам нужно только имена файлов, вы можете использовать функции printf:

функции printf '%з\п' *.tar.gz

... оболочка будет расширяться *.tar.gz шаблоны имен файлов, то в printf будет выводить их, с каждым последующим символом новой строки. Этот выпуск будет немного отличаться от того, что в ЛС в случае имен файлов с символами новой строки вложенными в них:

установки

сенсорный файл $ {1,2}.tar.gz
$ сенсорный файл$'\п'3.tar.gz

общ.

$ Общ -1 -- *.tar.gz
file1.tar.gz
file2.tar.gz
file?3.tar.gz

е

$ е '%з\п' *.tar.gz
file1.tar.gz
file2.tar.gz
файл
3.tar.gz
+24
tekybala 1 мая 2017 г., 16:09:45

Показать вопросы с тегом

$200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available blue chew viagra scam buy viagra buy viagra online buy viagra online canada pharmacy buy viagra online without script canada pharmacy viagra generic canadian pharcharmy online viagra canadian viagra canadian viagra without a doctor prescription cheap viagra cialis vs viagra cost of viagra female viagra female viagra pills free viagra free viagra samples generic viagra generic viagra 100mg generic viagra available generic viagra canada price generic viagra online pharmacy generic viagra sildenafil citrate generic viagra without a doctor prescription herbal viagra how does viagra work how long does viagra last how much does viagra cost how to take viagra for maximum effect i took viagra mom levitra vs viagra mom gives son viagra natural viagra natural viagra alternatives that work natural viagra substitute nizagara 100 mg vs viagra online viagra online viagra without subscription over the counter viagra real life viagra demonstration revatio vs viagra side effects of viagra sildenafil sildenafil 100mg sildenafil 20 mg sildenafil 20 mg tablet sildenafil 20 mg tablet vs viagra sildenafil citrate sildenafil citrate 100mg sildenafil citrate 20 mg sildenafil coupons sildenafil dosage sildenafil dosage recommendations sildenafil generic sildenafil side effects sophia viagra sophia viagra bikini sophia viagra hot stendra vs viagra stepmom gives son viagra viagra viagra 100mg viagra before after photo actual viagra boner viagra canada online pharmacy viagra coupon viagra coupons viagra coupons from pfizer viagra dosage viagra dosage recommendations viagra erection viagra erection after ejaculation viagra for men viagra for sale viagra for sale on amazon viagra for women viagra generic viagra generic availability viagra generic release date viagra in action viagra on line viagra online viagra online canada pharmacy viagra online pharmacy viagra patent expiration viagra pill viagra pills viagra porn viagra prank viagra prices viagra samples viagra sex viagra side effects viagra substitute viagra vs cialis viagra without a doctor prescription viagra without doctor prescription what is viagra when will generic viagra be available $200 cialis coupon 10 mg tadalafil generic 5 mg cialis over the counter at walmart best price for tadalafil 20 mg buy cialis buy cialis generic tadalafil buy cialis online buy cialis online without script buy tadalafil buy tadalafil online canadian cialis online pharmacy canadian pharmacy cialis cheap cialis cheap cialis generic cialis cialis 20 mg best price cialis 20mg cialis 30 day sample cialis 30 day trial coupon cialis and alcohol cialis before and after cialis canada cialis canada pharmacy online cialis cost cialis coupon cialis coupons cialis coupons printable cialis dosage cialis dosage information cialis for daily use cialis for sale cialis free trial cialis free trial voucher for cialis cialis generic cialis generic release date cialis generic tadalafil cialis lowest price cialis online cialis online pharmacy cialis over the counter cialis over the counter at walmart cialis patent expiration date extended cialis picture testimonials cialis pills cialis price cialis prices cialis reviews cialis side effects cialis tadalafil cialis tadalafil 20 mg cialis vs viagra cialis vs viagra which is better cialis without a doctor's prescription cialis without doctor prescription cost of cialis cost of tadalafil generic at walgreens coupon for cialis by manufacturer does cialis lower blood pressure generic cialis generic cialis at walmart generic cialis canada generic cialis canada pharmacy generic cialis from india generic cialis tadalafil generic tadalafil generic tadalafil 20 mg is there a generic for cialis online cialis purchasing cialis on the internet side effects for cialis side effects for tadalafil side effects of cialis tadalafil tadalafil 20 mg tadalafil 20 mg canadian drug stores tadalafil 20mg tadalafil 20mg lowest price tadalafil 5 mg tadalafil 5mg tadalafil cost at walmart tadalafil dosage tadalafil generic tadalafil generic at walgreens tadalafil generic best prices tadalafil online tadalafil price tadalafil side effects tadalafil tablets tadalafil without a doctor's prescription viagra vs cialis viagra vs cialis vs levitra warnings for tadalafil