Поиск неудачные попытки в /var/журнал/безопасной

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

Дата: 03/15/10 время: 10:30 количество попыток: 8

Heres мой код до сих пор (не много)... я на правильном пути?

#!/бин/Баш

classGID=5000
passfile=/ВАР/лог/безопасной


для меня в $(команда grep ${classGID} ${passfile} | вырезать -д: -Ф1)
делать

дата=$(grep в $я{passfile} | вырезать -д: -Ф2)

Эхо "дата: ${дата}"

сделано
+284
Rebecca Hensch 3 июн. 2018 г., 15:35:26
39 ответов

Вместо использования если-заявления:

#!/бин/Баш

хотя ИФС= читайте -р-р 'введите число 1-100: '
делать
 случае $ответить
-1)
перерыв
;;
[1-9]|[1-9][0-9]|100)
 сумма=$(( сумма + ответ ))
 нумс=$(( нумс + 1 ))
;;
*)
 функции printf '%s не является допустимым\входе N' "$ответ" >&2
эсок
сделано

е '\н'
е 'сумма %D чисел равна %D\N' в "$нумс" "$сумма"
Ср Е 'В %D чисел равно %D\N' в "$нумс" "$(( сумма/нумс ))"

При этом используется шаблон [1-9]|[1-9][0-9]|100 чтобы соответствовать допустимым значением (цифры 1-9, 10-99, и 100). Это также позволяет пользователю, чтобы выйти из цикла по нажатию клавиш Ctrl+Д, который обычно используется для обозначения конца ввода.

+998
Le Gluon du Net 03 февр. '09 в 4:24

Я успешно установили Ubuntu 18.04 вместе с Windows 10 на моем компьютере (96 ГБ ССД + 1 ТБ HDD). SSD диск состоит из двух основных разделов (за исключением восстановления и ели):

  • Раздел Windows (содержащего Windows 10)
  • Раздел с Ubuntu (содержащие /(корень) и своп)

Этот диск также имеет две секции, одна из которых содержит файлы (документы, музыка и т. д.) для Windows, а на другой раздел монтируется /дома.

enter image description here

Если я использую диски инструмент, однако, я вижу, что внутри корневой папке есть еще одна /дома/my_username папку, которая содержит те же папки и файлы, как "Реал" /Home находится на HDD диске.

Как это возможно? Это нормально? Как я могу это исправить?

+980
Jhon Godto 22 окт. 2016 г., 18:13:32
Другие ответы

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


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

У меня Pinebook с квад-сердечника рукоятки Cortex A53 64-битных процессора работает официальный КДЕ Неон изображения с очень старыми официальные ядра 3.10. В 4.17 поддержку Pinebook был принимал, так что технически я должен быть в состоянии строить новейшую ветку, упаковать в deb и установить его, верно?

Однако, я могу найти только Инструкции о том, как сделать это с машин семейства x86. С чего мне начать, если я хочу сделать это на моем Pinebook руку?

+968
sudhakar 19 апр. 2013 г., 16:56:09

Чтобы ответить на ваш прямой вопрос, вам нужно обернуть ваш код в $() последовательности, так что его выход может быть присвоено переменной. Вот так:

х=$(your_code_goes_here)

Что сказал, У меня есть несколько заметок об одном из вкладыша:

  • Почему ведущие кошка *? Это, кажется, бесполезно использовать кошки. Вы можете напрямую сделать

    шаблон грэп *
    

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

  • Я не уверен, что туалет -я в конце предназначено для: отрежьте не печатать его вывод в несколько строк, так что туалет -л (посчитать количество строк) всегда будет возвращать 1.

+955
Umair Khan 30 июн. 2011 г., 05:05:04

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

Предполагается следующее TEST_FILE дано:

Это первый (1) пункт. Это втором (2) предложении. Это третьем (3) предложении.\Н четвертом (4) предложении первого (1) абзац второй (2) линия первый (1) пункт.

Это второй (2) пункта. Это втором (2) предложении второго (2) пункта. Это третьем (3) предложении второго (2) пункта.


Это третий (3) пункт. Это втором (2) предложении. Это третьем (3) предложении второго (3) пункт.



Это четвертый (4) пункта. Это втором (2) предложении четвертого (4) пункта. Это в третьем (3) предложении.




Это пятый (5) пункт. Это втором (2) предложении. Это третьем (3) предложении.\Н четвертом (4) предложении пятого (5) абзац второй (2) Линия 5 (пятого) пункта.

Абзацы не отделены друг от друга одной пустой строкой (как было предложено), но хорошо бы узнать, как некоторые команды работают.

Подавление повторяющихся пустых выходных линий:

кошка -с TEST_FILE 
Это первый (1) пункт. ...

Это второй (2) пункта. ...

Это третий (3) пункт. ...

Это четвертый (4) пункта. ...

Это пятый (5) пункт. ...

Кроме того, количество всех выходных линий:

кошка -с -н TEST_FILE
 1 Это первый (1) пункт. ...
2
 3 Это второй (2) пункта. ...
4
 5 Это третий (3) пункт. ...
6
 7 это четвертый (4) пункта. ...
8
 9 это пятый (5) пункт. ...

И количество непустых выходных линий только:

кошка -с -н -б TEST_FILE
 1 Это первый (1) пункт. ...

 2 Это вторая (2) пункта. ...

 3 Это третий (3) пункт. ...

 4 Это четвертый (4) пункта. ...

 5 это пятый (5) пункт. ...

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

Таким образом, можно достичь того же результата с номером линии НЛ (но только если пустые строки реально пустые и не содержат пробелы):

кошка TEST_FILE | НЛ
 1 Это первый (1) пункт. ...

 2 Это вторая (2) пункта. ...


 3 Это третий (3) пункт. ...



 4 Это четвертый (4) пункта. ...




 5 это пятый (5) пункт. ...

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

кошка -с -н -б TEST_FILE | грэп .

В случае линий с пробелами надо бы удалить их в первую очередь:

команда grep -v С -Е '^[[:пробел:]]*$' TEST_FILE | НЛ

Чтобы Эхо строки в bash можно использовать:

Эхе -е $(кошка -с TEST_FILE | хвост -1)
Эхе -Е $(кот -с -н -б TEST_FILE | хвост -1)

Вы могли бы также показать некоторые строки только цифры. Но это уже оставим за рамками вопроса.

+949
Amit Ramawat 12 нояб. 2015 г., 00:38:00

Попробовать fzf-ФС.

Установите fzf:

git клон-глубина 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/установить

Повторно источник ваш ~/.bashrc следующее: . ~/.bashrc следующее

Клон fzf-ДФ: клон git https://github.com/D630/fzf-fs ~/fzf-ФС

Добавить ~/fzf-ФС в свой путь: путь=пути$Path:~/fzf-ФС
Запустить fzf-ФС --инит
Определить псевдоним: псевдоним видеодисков='. fzf-ФС'
Запустить видеодисков ~
Вы должны увидеть нечто подобное: enter image description here



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

См. также: fzf-ФС использования, fzf-ФС не поддерживает переводы строк в именах файлов исправлено для компакт-дисков!

+922
vaniuska009 10 авг. 2010 г., 10:05:37

Какой самый правильный способ распространения shell-скрипты, если поведение снарядов могут быть изменены комплект и, следовательно, непредсказуемы?

Например, РМ *.тхт не будет выполнена должным образом на средах, в которых установлен -Ф была запущена. Как я должен убедиться в том, что РМ *.тхт удаляет все текстовые файлы в текущей директории в любых условиях?

Как я должен сделать, что уверены, что скрипты будут работать как и ожидалось, прежде чем распространять их в целом?

+918
Muthuraj Muthuraj 24 июл. 2012 г., 17:30:14

Когда я пытаюсь запустить скрипт на удаленном сервере через SSH, я получаю "нет телетайп присутствует и программа не askpass определен" ошибка.

Главной командной строки, где я получаю ошибку:

суда /usr на/sbin/команда userdel $функция user_id

Пожалуйста, предложите, что нужно изменить в моей командной строки.

Примечание: Я не могу изменить этот файл, пользователям использовать sudo? на удаленном сервере.

+743
Surenthar Selvarajan 11 янв. 2019 г., 14:13:09

Не использовать $путь в качестве переменной в скриптах!!!

Она отвергнет ваше, да, $путь.

Пример:

Эхо $путь 
maulinglawns /дома//ОГРН:/usr/местные/Бен:/usr/Бен:/ОГРН:/usr/местные/игры: каталог/usr/игры

Если я назначить еще что-то в$Path, что происходит?

[email protected]дебиан-л.:~$ путь=ФОО
[email protected]в Debian-л.:~$ Эхо $путь
фу
[email protected]дебиан-л.:~$ ЛС
Баш: Общ: команда не найдена

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

+726
BlackBeans 15 апр. 2012 г., 03:34:14

Хотя это было вниз проголосовали ... возможно, потому, что кто-то подумал, что это не отвечает на вопрос ... я думаю, что @Рони ответ является хорошим началом при объяснении, что загрузочный флаг про. (Я на самом деле планирую начать мой ответ с примером аналогичного тому, который он предоставляется.)

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

Но потом я обнаружил, что все уже сказал в ответ на этот вопрос: Что такое "флаг" вариант при установке дистрибутива?

Более того есть также ссылка на статейку о загрузочный флаг , который говорит

  • "Его основная функция заключается, чтобы указать к МС-Дос/ms в ОС Windows-тип загрузчика какой раздел загрузиться. В некоторых случаях используется Windows ХР/2000 назначить активный раздел на букву "С:"."

Ну, это очень неудобно ...

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

Хорошо известная фраза обычно приписывается Оскару Уайльду оказалось слишком верно в данном случае.

Похоже, что МБР и ПБР (загрузочную запись) погрузчики используются в операционных системах Windows не ожидать загрузки флаг должен быть установлен правильно.

Чтобы проверить это, я очистил флаг загрузки из всех разделов виртуальных машин под управлением Windows 8. (См. ниже. Если вам интересно, вот ссылка на ссылка на Pastebin в полной BootInfo сценарий)

Привод: ПДД 
Диск как /dev/ПДД: 26.8 ГБ, 26843545600 байт
255 головок, 63 секторов/дорожку, 3263 цилиндров, общая 52428800 секторов
Единиц = секторах 1 * 512 = 512 байт
Размер сектора (логического/физического): 512 байт / 512 байт

Загрузочный раздел начало сектора конец сектора # секторах системы ИД 

на /dev/sda1, поскольку 2,048 718,847 716,800 7 в NTFS / exFAT, которая / ОПО
на /dev/sda2 718,848 52,426,751 51,707,904 7 в NTFS / exFAT, которая / ОПО

Когда я убрал флаг из обоих разделов, я получил сообщение об ошибке: фатальная ошибка: INT18: ошибка загрузки, когда я попытался загрузиться. (Я не уверен, если это из загрузчик Windows MBR или эквивалент ВМ в БИОС.)

Просто чтобы посмотреть, что произойдет, я также установить загрузочный флаг на "неправильный" раздел, устройстве/dev/sda2 , а не на/dev/sda1, поскольку. Делать это привело в окне, показанном на рисунке ниже.

Windows failed to start error window

<вздох/>

Этот опыт заставляет меня задаться вопросом, если Microsoft все еще используя тот же загрузчик в MBR сектор, который они использовали для MS-DOS и Windows 3.0/3.1?

+714
mlynn Bytch 23 апр. 2013 г., 00:19:08
сделать это утилита, которая автоматизирует процесс сборки, управление зависимостями между целями.
+704
Chu Xiwen 19 мая 2013 г., 05:13:04

В firewalld:

$ брандмауэр cmd судо-зона=общие-добавить-маскарад

$ брандмауэр cmd судо-зона="публичных" \
- добавить-вперед-port=порт=8080:прото=ТСР:toport=80:так=123.123.123.123

За идею посмотреть этот СФ вопросы и ответы на тему: Как сделать перенаправление портов с одного IP на другой IP в одной сети?.

Ссылки

+693
Monica Wingard 30 сент. 2014 г., 20:35:48

Если входных линий нет пространства использовать это:

сложите -1 data_sample.txt

фолд - обернуть каждую строку ввода, чтобы вписаться в заданную ширину.

В этом случае ширина одного столбца, указанного -1 вариант.


Если входной сигнал имеет пробелы, но вы хотите отключить их, используйте это:

грэп -о '\с' data_sample.txt

И \S - любой не-пробельный символ.

- принт все соответствием частей на отдельной строке.

+624
Hady Farajvand 21 февр. 2014 г., 10:37:52

Процесс обновления очень осторожны, о том, что он делает и как он пишет файлы на диск, так что ваша установка должна быть ОК (в зависимости от того, как именно вы остановили процесс...). Там могут быть некоторые выдающиеся ждут задания конфигурации, и некоторые пакеты могут быть синхронизированы, так что вы еще должны завершить обновление; это не будет заново скачать все, что угодно, что уже было скачано будет в кэше пакетов.

Чтобы завершить установку, просто повтор

apt-получить расстояние-обновления

Если вы хотите финишировать первым выдающимся конфигурации, выполните

команды dpkg --настроить --в ожидании

(обе команды, как корень).

+602
MarredCheese 10 июн. 2014 г., 03:01:22

Проблема с чтением файловой системы /proc является то, что она не является атомарной. Я попытался с помощью библиотеки (procfs в Python), который хочет читать, но глюки около 5% времени, потому что я после теперь уже нет. Итак, я хотел бы скопировать все в /proc в другое место, скажем /proc_clone/<идентификатор>/. Идентификатор GUID можно сгенерировать с помощью uuidgen команды.

Наивный подход будет пытаться использовать СР -р, но я получаю целую кучу "доступ запрещен" ошибки и брать больше, чем второй. Я только после подмножество в/proc/<PID процесса> и даже тогда, только только для чтения материалов, которые могут быть включены в строку (в конечном счете я хотел бы построить один JSON файл, который содержит все это).

Я ищу скрипт, который будет делать это для меня и тоже короткие, простые, очень быстро, сможет справиться с процессами, умирая в полете, пропуская их, однако, я бы хотел, чтобы избежать написания кода C - я бы предпочел придерживаться Баш, существующих инженерных сетей и, возможно, Перл / питон. Цель здесь просто, чтобы сделать снимок подмножество в/proc, не производить JSON-файла сама.

Я слышал мнения, что "никто не должен когда-нибудь попробовать скопировать файл в/proc , но просто читать из него". Ну, не атомной природы это означает, что нужно выкидывать кучу попробовать/поймать всех за код, когда пытаюсь сделать очень простой операции. Используя высокий уровень языка программирования, таких как Python (что я в конечном итоге хотите использовать), чтобы перебрать в/proc - это медленный способ, который включает обе системы ввода-вывода и процессорного времени. Это увеличивает риск наблюдаем процесс умирает на вас (я, конечно, часто его видеть; у меня есть скрипт, который опрашивает /тез каждую минуту и я сталкиваюсь с большим количеством исключений). Я хотел бы построить библиотеку, которая выводит один файл JSON, который содержит процессор и использование памяти информацию о процессах в удобочитаемом формате (например, через секунды, а не на МиГах, байтах, а не страниц, у единиц в дополнение к ценности. Я не обеспокоен тем, что это займет некоторое время, чтобы создать файл дампа каталога; я просто хочу, чтобы убедиться, что снимок как можно более точным. Так. если я не должен просто копировать /тр за, то какой другой способ я должен использовать?

+597
user309982 9 авг. 2015 г., 20:38:37
найти $(найти -название "[0-9][0-9][0-9][0-9]") -название "[Тест]*" опции-mtime -7 -экзек РМ -я {} \; || Echo "здесь нет восстановления файлов старше 7 дней"

В || (или) оператор смотрит на результат команду на левый, и запускает команду на правом, только если команда, на левом искусству (на основе кода возврата).

Если найти не удается найти каких-либо подходящих файлов, он будет возвращать 1, что приведет || запустить запустить Эхо команды.

+552
naps1saps 22 дек. 2015 г., 04:49:34

на awk имеет параметр для установки переменных. Чтобы установить переменную в Неум, вы могли бы сказать , как awk -V я=$я и тогда внутри , как awk заявление, просто ссылаться на переменную, как я , а не .

Я не проверял, но попробуйте это:

used_pages="$(на awk -V я=я '/я/{шп[ВН+9]}; NR в LIST.txt НР')"
+536
MarkAurelius 8 мая 2011 г., 11:51:56

Размер файловой системы по умолчанию размер его основной раздел.

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

Но если вы пытаетесь увеличить файловую систему, вы должны сначала увеличить устройства на. Для обычных стационарных перегородок, которые не часто можно (нужно иметь свободное пространство после раздела), но что-то вроде ЛВМ это тривиально, так как вы можете просто изменить размер логического тома на волю.

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

+523
filosofer1775 3 сент. 2010 г., 20:37:03

Когда я подключен к инвайт-единственный канал, и я опыт отключения от сети, есть состязания между автоматической авторизации передоза и забаненный каналы. (ЕТА: если это имеет значение, я использую CertFP (клиентского сертификата SSL) для авт.) Если двиг слишком медленно, irssi удаляет Windows для пригласить-только каналы.

Есть ли способ, чтобы задержать канала переподключение, или в какой-то другой способ решения этой гонки?

(Если я не могу, в качестве альтернативы я бы хоть как то сохранить irssi от закрытия окна!)

+515
Mia Mia 28 окт. 2016 г., 00:20:52

Я хочу создать пользовательскую ОС Linux в первую очередь для хобби и обучения. Он не нуждается в окружение рабочего стола, но я хочу по крайней мере настроить внешний вид окна диспетчера и, возможно, панель задач. Приложения (с графическим интерфейсом) можно выполнить с помощью терминала, который станет приложением по умолчанию после загрузки. В принципе, я хочу, чтобы выглядеть и чувствовать себя старого компьютера, но опираясь на мои собственные графики для GUI. Он также должен быть в состоянии полностью управлять с помощью клавиатуры.

У меня есть знание Linux и понять, что оконный менеджер, окружение рабочего стола и т. д. есть, но у меня нет прямого знания разработки для Linux. Я искал вокруг в интернете для инструментов и методов, чтобы сделать такой GUI, но там столько информации, что я немного запутался, что я мог бы использовать и делать. Можно мне чуть-чуть дистрибутиве Linux без GUI, и я знаю, что я должен установить хотя бы оконный менеджер для GUI, чтобы появиться, но не в этом суть, я хочу иметь пользовательский интерфейс с панелью задач, но я смотрю на это больше с точки зрения графического дизайнера, чем программиста, так что я действительно не знаю, куда дальше оттуда. Я думал использовать Qt или SDL для графического интерфейса и приложений. Так что мой вопрос действительно о том, как создать пользовательский интерфейс, не развивая оконный менеджер с нуля. На Python/Lua или даже c# предпочтительнее, но c++ это не проблема.

К вашему сведению, он не предназначен для работы в качестве стандартной ОС, таких как Ubuntu. Это для конкретного использования и предназначены только для выполнения моих собственных простых приложений (я запустить ОС в качестве виртуальной машины). Система предназначена для весьма специфического и уникального назначения, но я не уверен, как люди будут реагировать, если они знали, что это было. Это не то, для профессионального использования, не очень серьезные, но лишь некоторые исследования в понимании Linux и операционной системы в целом.

+503
Hue Nery 19 июл. 2011 г., 11:39:29

Вероятно, он был построен для более типичных 64-битной архитектурой. Атомы в целях ЦП, отсутствие многих функций, типичных 64-разрядных процессоров. Скорее всего живой системы вы пытаетесь загрузиться был построен с некоторыми оптимизациями GCC, которые вылились в инструкции не поддерживается Атом.

Вы должны выбрать другой живой CD/DVD или задать вышестоящим, если не существует такого процессора.

+429
little pootis 26 сент. 2014 г., 18:24:33

Большую часть времени вы будете использовать СШ. приложения vncviewer могут быть доступны, но часто это не так (большинство серверов не имеют X11 или что-нибудь связанных с графикой).

Зачем использовать SSH? Из документации CentOS:

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

  • Клиент передает свои данные для проверки подлинности на сервере, используя сильный, 128-битное шифрование.

  • Всех отправленных и полученных данных в течение сессии передаются с использованием 128-битного шифрования, что делает перехватили сообщения крайне трудно расшифровать и прочитать.

  • Клиент может перенаправить X11 приложений с сервера. Этот метод, называемый проброс X11, обеспечивает безопасное использование графических приложений по сети.

+412
Barbara Genung 21 янв. 2012 г., 05:54:51

Я недавно установлен Debian 9. Это все хорошо, единственная проблема, что он не обнаруживает мой монитор в HDMI-порт. Я использую Делл Инспирон 15 игровой ноутбук.

xrandr поближе
Экран 0: не менее 320 х 200, текущие 1920 х 1080, максимальные 8192 х 8192 
эои-1 подключена первичная разрешение 1920x1080+0+0 (нормальный левый перевернутый правая ось Х ось Y) 344mm х 193мм 
 1920х1080 60.05*+ 59.93 48.04 
 1680х1050 59.95 59.88 
 1600x1024 60.17 
 [....] 
 512х384 60.00 
 До 400x300 60.32 56.34 
 320х240 60.05 
ДП-1 отключен (нормальный левый перевернутый правая ось Х ось Y) 
Разъем HDMI-1 отключен (нормальный левый перевернутый правая ось Х ось Y)

И команду lspci -НН | команда grep VGA и выход:

00:совместимость контроллера VGA 02.0 [0300]: Intel корпорация устройстве [8086:591b] (Ред. 04)
01:совместимый контроллер VGA с 00.0 [0300]: NVIDIA корпорации устройства [10de:1c8c] (откр. А1)

Он отлично работает в Windows.
Мой Debian: Linux от Debian 4.9.0-4-amd64 и KDE плазмы.

Edit1:
расширения xrandr --listproviders выход:

Поставщики: количество : 1
Поставщик 0: идентификатор: 0х45 крышки: 0xf, выход источника, выходного тока, разгрузку источник, приемник разгрузки crtcs: 3 Выходы: 3 поставщики: 0 название:Выбор режима для схем

Edit2:
Ошибки Логи Xorg
Предупреждение при установке драйвера Nvidia
Ошибка с OpenGL


Edit3:
обновление-ГБО --список найти выход:

в /usr/lib в/Меса-отвлекли
в /usr/lib в/нвидиа
в /usr/lib в/нвидиа/Шмель

Edit4:
Файл xorg.0.журнал без нвидиа-до конца
Файл xorg.0.журнал с NVIDIA-конца

+403
Core MTech 18 апр. 2019 г., 00:03:27

Я руковожу программой сервера (SRCDS), что полностью игнорирует сигнала SIGTERM. Единственный способ, чтобы полностью отключить сервер введите "QUIT" в интерактивном режиме.

Есть ли способ, что я могу обернуть эту программу в bash-скрипт, который будет ловить SIGTERM и послать команду "QUIT" в поток ввода программы? В противном случае в нормальном режиме работы оболочки следует вперед stdin и stdout, как будто не было вообще.

Схема, что я пытаюсь добиться:

Обычный режим работы:

--- ВЫВОД ---> | | --- КЛАВИАТУРЫ ---> | |
 | Баш Скрипт | | Программа |
<-- ПОТОК STDOUT --- | | <-- ПОТОК STDOUT --- | |

Сигнала SIGTERM отправлено:

"выход"
--- ВЫВОД ---> | | --- КЛАВИАТУРЫ ---> | |
-- Прекращается --> | баш скрипт | | программа |
<-- ПОТОК STDOUT --- | | <-- ПОТОК STDOUT --- | |
+387
Noor noor 25 янв. 2019 г., 01:30:26

Вы должны размонтировать/открыть смонтированный раздел (Выберите раздел, правый клик) , то вы сможете продлить устройство/dev/sdb3

+374
andycam 16 июн. 2010 г., 10:55:09

Не беспокойтесь о ddrescue. Он не по-писать плохие блоки. Кто сказал, что эта программа небезопасна, они спасли плохие сектора не то же самое было. А если плохой сектор поврежден он уже поврежденные данные и программы ddrescue пытается прочитать этот сектор несколько раз и дает каждый раз разные данные. Эта программа использует среднем различные данные, чтобы попытаться спасти их. Многие из спасенных плохих секторов нет данных.

Полное спасение возможно только из резервной копии. RAID не резервного копирования. Зато она позволяет быстро заменить плохой диск и восстановить функциональность.

Вы можете найти хороший пример использования ddrescue по адресу http://forensicswiki.org/wiki/Ddrescue

+351
RocketTwitch 8 сент. 2015 г., 14:00:44

Мне нужен совет:

Как проверить, что последний процесс scan_sys.sh что в моей линукс или Солярис ?

моя цель-убить все процессы scan_sys.sh кроме последней scan_sys.sh ( последнее выполнение /скрипт usr/scan_sys.sh )

ПС-эф | scan_sys.sh грэп 

.

корень 367 1 0 08 ноября ? 0:21 /usr/scan_sys.sh
корень 27517 27515 0 17:27:18 ? 0:01 /usr/scan_sys.sh
корень 18939 367 0 15 ноября ? 0:00 /usr/scan_sys.sh
корень 18939 18940 0 15 ноября ? 0:01 /usr/scan_sys.sh
корень 27515 367 0 17:27:18 ? 0:00 /usr/scan_sys.sh
+293
thirtythreeforty 10 янв. 2017 г., 14:37:28

Я считаю, это здорово, что кто-то написал МД5 в awk: https://kaworu.ch/blog/2017/05/23/implementing-md5-in-AWK/

К сожалению, довольно медленно. Я ищу инструмент быстрого хеширования на awk, которая может вычислить 16-битный или 32-битный хэш одном поле.

Она не обязана быть криптографически безопасной.

Разве такая функция существует?

Мой альтернатива заключается в использовании на Perl:

на Perl -е, -Анэ 'использовать B; B печати::хэш($ф[0])'

поэтому решение должно быть быстрее, чем решение на Perl.

+260
sanprado 2 апр. 2014 г., 01:19:42

Ок, это действительно странно. У меня есть довольно простой установки Убунту, где я начинаю awesomewm и ряд других программ от .xsession теперь. Я не работает в GNOME 3 или что-нибудь тяжелое, и мне даже перестали так много запущенных процессов, а можно, чтобы попытаться выяснить, что вызывает это, но безрезультатно.

Что я вижу, примерно через час после загрузки моего ввода клавиатура ноутбука становится медленным. Это почти как это добавив таймаут 300 мс для каждой клавиши, как будто он ждет, что другие клавиши, что вызовет некоторые магические комбинации. Если я просто типа быстро я не могу увидеть ничего, кроме окончательной клавиш, которое занимает 300 мс-1С для отображения. Трудно время, очевидно. Страннее еще, если я смотрю на терминала с мигающим курсором, я вижу, что мигает не постоянно. Обычно я думаю, что это что-то вроде 1С на 1С, но теперь это совершенно спорадически.

Я волновался, что это будет аппаратная проблема, но когда я использую реальный терминал (т. е. не в xorg, контрол-Альт-Ф1, проблема ушла. команда dmesg не скажет ничего интересного. Не в/var/журнал/файл xorg.0.журнал.

Кто-нибудь есть идеи? Я думаю, это может быть легче решать в реальном времени; я Фрю на Freenode. Не стесняйтесь писать и, может быть, вы можете помочь (и конечно пишите, что работали здесь и получите кредит.)

+217
Renata Dis 11 июл. 2014 г., 13:24:08

Похоже, что файл/etc/inputrc файл соответствует скрипт синтаксис. Но имя файла не заканчивается . Первая строка в файле нет #!, либо.

Это другой тип файла?

И это тип файла идут параллельно ?

Он работает как скрипт?

У него есть именования, как - суффикс?

+213
user44533 19 дек. 2016 г., 09:31:52

Расширить этот вопрос: jq не распарсить JSON-файла с ограничение из другой области

После выберите "имя" поля, я хочу раскрасить его:

{
 "контрольная сумма": "9e44bb7b76d8c39c45420dd2158a4521",
 "корни": {
 "bookmark_bar": {
 "дети": [ {
 "дети": [ {
 "date_added": "13161269379464568",
 "идентификатор": "2046",
 "имя": "название здесь",
 "sync_transaction_version": "1",
 "тип": "адрес",
 "адрес": "https://the_url_is_here"
 }, {

После того, как Google на некоторое время и прочитать jq нес man-страницы, кажется, мы можем задать цвет через переменную JQ_COLORS по умолчанию JQ_COLORS=1;30:0;39:0;39:0;39:0;32:1;39:1;39у меня нет его в моем ОКР, так что я вручную установить на (Я не должен, потому что это по умолчанию - жестко где-то), и тест на jq не команда, но на выходе не имеет цвета (выход-это просто поле, а не объект JSON). Я так думаю, цвет через jq не является для JSON объекта, а не выбранного поля.

Вот я и спрашиваю есть ли способ, чтобы установить цвет для выбранного поля с jq не?

Редактировать: я застрял с или не параметр jq не: С помощью этой команды:

jq не -р '.корни.bookmark_bar.детей[]|.дети[]|["\"\(.фамилия)\"",.URL-адреса]|@ТСВ' json_file`

У меня ожидаемый результат:

"что-то здесь есть места и внутри двойных кавычек" solid_line_without_space

Но если я уйду вариант, у меня есть команда:

jq не '.корни.bookmark_bar.детей[]|.детей[]|["\(.имя)",.URL-адреса]|@ТСВ' json_file`

и результат, как ниже - не ожидал, не может быть расширен:

"что-то здесь есть места и внутри двойных кавычек"\tsolid_line_without_space

Вопрос 1: Как добиться результата:

"что-то здесь есть места и внутри двойных кавычек" solid_line_without_space

без вариант, мне очень нужен цвет здесь.

Вопрос 2: потому что я фильтр два поля в моем запросе, как сохранить цвет на только поле "имя" , а не на поле "URL-адрес" - на самом деле он может быть продлен до как настроить цвет каждого поля (кажется, мне придется изменить JQ_COLORS)

Вопрос 3: Расширенное вопрос: Как сохранить цвет полей, если я его через другой фильтр, Эл.г: jq не <..> | СЭД <...>?

Вопрос 4: Как настроить сепаратор? вот у меня был @TSV в качестве символов для <вкладка>, что если про сепаратор как | - космос|Космос?

+166
Robin Southall 18 мая 2012 г., 10:02:56

Удалить все systemctl команды и просто запустить syslog в качестве cmd, чтобы запустить его.

УМК [слово"syslog-НГ"]
+155
Pambakti Hilal Fahmi 17 окт. 2011 г., 06:28:13

У меня есть файл, где 2-й столбец выглядит так:

37M533N38M
14M1170N45M233N16M
3S45M3N35M

Я хочу, чтобы извлечь эти строки, которые содержат , но нет других цифр сразу до 3. Так, например, А3N бы матч, но 23N бы не стал. Следует также отметить, что никогда не присутствовать в покое и строка не будет начинаться с , и не закончится с . Результат должен быть в третьей строке выше:

3S45M3N35M

Как я могу сделать это в awk? Я пробовал $2 ~ /3Н/ но это, конечно, не работает.

+135
Psocretes 23 окт. 2016 г., 01:45:11

Самба В. 3 может быть в стиле NT4 с контроллера домена. Если у вас рекламный сервер работает для обмена, этого недостаточно.

Самба В. 4 будет иметь возможность быть Windows 2003 тип контроллера домена, но не сделали. Не однозначно.

Следующий вопрос будет: есть ли у вас какие-то левые клиенты Windows? Если это так, то у вас проблемы. Windows не как вставные как Linux. Хотя вполне возможно, чтобы изменить определенный DLL файл (забыл название) для проверки подлинности универсальный КДЦ, Windows, был построен для работы с AD и с только объявления. Все остальное требует изменения системы Windows dll файлы. Это хреново.

Если у вас нет любых клиентов окна слева, это становится намного проще. Вы можете легко заменить Windows ad с использованием комбинированного решения / протокола Kerberos и LDAP. Протокол Kerberos KDC (центр распределения ключей) пакеты в дистрибутиве. LDAP-серверы доступны в много различных форм. Сервер OpenLDAP в большинстве дистрибутива. Инструмент управления интерфейс для каталогов LDAP доступен с открытым исходным кодом для LDAP-африканская Партия демократии и социализма, как 389 и я тоже думаю, Апач ДС.

Я упомянул FreeIPA проекта в этом контексте в другой ветке как интегрированное решение, но это только для Linux.

Поэтому, чтобы сделать длинную историю короткой: у вас есть клиенты Windows в вашей сети до сих пор?

Редактировать: очевидно, нет. Итак, построить себе "КДК", вы можете взять копию 389 DS и вы хорошо идти. Затем, вы будете иметь, чтобы сделать некоторые скрипты LDAP, чтобы подтянуть информацию пользователей с контроллера домена и вставьте его в свой LDAP-сервер. Я не думаю, что вы можете перенести пароли пользователей, вы, вероятно, придется сбросить.

+123
iOS Monster 14 июн. 2011 г., 19:13:09

ТЛ;ДР: использовать буферы вместо вкладок в Vim.

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

Получается, что вкладки в Vim не работает, вкладки коллекции Windows, так что при смене вкладки, вы переключаете все окна сразу. Это довольно полезно, если вы работаете на отдельных окнах одновременно.

Но, похоже, это не то, что вы хотите, поскольку вы хотите изменить файл в одном окне одновременно.

Для этой цели вы хотите использовать буферов в Vim, а не вкладки. Буферы ВИМ характеристики, которые наиболее близко напоминает вкладки в других редакторах, таких как код против.

Просто используйте ВИМ *.пы при открытии файлов (без В вариант, который их открывает во вкладках), и управлять ими, используя И :пред (или ). Вы можете потом разделить с :против или :СП и использовать Ctrl-з команды для переключения и реорганизовать окна.

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

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

+113
III VVV 9 дек. 2011 г., 07:15:42

Вообще, вы всегда можете сделать:

<команда> | SSH пользователь@удаленный-сервер "кота > output.txt"

Это экономит выходе <команда> для output.txt файл на удаленном сервере.

В вашем случае, на сервере-1:

Эхо "йцукен" | SSH пользователь@сервер-2 "кошку > output.txt"

Если два сервера нет подключения, но вы можете войти по SSH на оба сервера, а потом с локальной машины, вы можете сделать:

SSH пользователь@сервер-1 "<команда>" | SSH пользователь@сервер-2 "- кошка > output.txt"
+109
user33074 7 мар. 2017 г., 09:17:54

Если используете Debian стабильный, и у вас есть пакет, который вы хотите обновить, вы можете использовать бэкпорты, как видно в https://backports.debian.org/Instructions/

короче: добавить "деб http://ftp.debian.org/debian Джесси-бэкпортов главной" (после основных, можно также добавить contrib и non-free, в случае их использования.) на ваши источники.список, который по умолчанию является /etc/АПТ/источников.список

(как root или с помощью sudo) обновление с помощью apt-получить обновление (или способности) Затем, чтобы использовать пакет из бэкпортов, вам нужно использовать команду АПТ-Гет-Т Джесси-бэкпортов установить/обновить... (или способности)

(Если вы используете Debian хриплый, также существуют бэкпортов)

+97
Andreas Jaehrig 8 нояб. 2013 г., 08:18:05

Похоже, ваш autogen.sh звонит autoreconf.

Проект может быть через intltool , но если так autoreconf должны подобрать и назвать intltoolize. Если это наверняка используете GNU gettext версии, то это от autopointбыл информация полезна:

В ‘autopointбыл’ программа копирует стандартную инфраструктуру gettext файлы в исходный пакет. Это выдержки из макроса вызвать форму ‘AM_GNU_GETTEXT_VERSION(версию), нашел в пакете еще ‘настроить.В " или " настроить.файл AC’, версия gettext версии используемого пакет, и копирует файлы инфраструктуры, принадлежащих к этой версии в пакет.

И если мы пишем AM_GNU_GETTEXT_VERSION тогда autopointбыл правильно ссылаться на autoreconf.

Для извлечения последней имеющейся инфраструктуры, которая удовлетворяет требование версию, то вы можете воспользоваться формой ‘AM_GNU_GETTEXT_REQUIRE_VERSION(версия) вместо. Например, если gettext версии 0.19.8 установлен на вашей системе и ‘0.19.1’ предлагается затем инфраструктура файлов версия 0.19.8 будет скопирован в пакет источника.

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

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

Пишу AM_GNU_GETTEXT_VERSION и AM_GNU_GETTEXT_REQUIRE_VERSION сразу после этого в моем собственном настроить.переменного тока генерирует предупреждение, но в противном случае, как представляется, привести к желаемому результату.

+92
krs1 6 мая 2013 г., 06:24:28

Быстрый поиск по packages.debian.org выявлена недостающая htc_7010.прошивки файл в прошивки-установки пакета.

Есть какой-то шанс этот прошивки бесплатно. Если не ошибаюсь несколько лет назад разработчики работают над драйверами ath5k/ath9k удалось реконструировать проприетарный блоб прошивки и заставили Atheros для изменения их политики. Консультации прилагается /usr/доли/док/прошивки-драйвер для сетевой карты Atheros/авторское файла.

+49
aimee hanlon 27 окт. 2014 г., 18:21:14

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

$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