Linux переход по ссылке

Переход по сcылке каждую минуту

Есть дистрибутив Debian. Нужно каждую минуту делать переход по http-ссылке. Можно ли это сделать скриптом, или каким нибудь кодом на Python или С++?

3 ответа 3

Вы можете использовать wget или curl

Для wget достаточно в простейшем случае написать

wget http://example.com/address 

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

После чего откроется редактор vi. Нужно будет

После этого изменения в cron будут сохранены

Это тестовый вариант — вам на локальную почту будут прилетать результаты работы программы. Чтобы они не вылетали, отправьте вывод в /dev/null, как советуют ниже

* * * * * wget http://что-то_там>/dev/null 2>&1 

для выполняения http-запроса можно воспользоваться любым удобным http-клиентом.

наиболее популярны из них curl и wget .

для ежеминутного запуска можно дописать в свой crontab -файл строку вида:

* * * * * curl -s http://адр.ес >/dev/null 2>&1 
* * * * * wget -qO - http://адр.ес >/dev/null 2>&1 

Также для перехода по ссылке можно использовать консольный браузер, например lynx Установка:

В cron, после выполнения команды

(где USERNAME — имя пользователя, под которым вы хотите запускать команду) добавить строку

* * * * * lynx -dump http://ya.ru >/dev/null 2>/dev/null 

Но это уже скорее извращённый вариант, проще использовать wget или curl.

Источник

[глупый вопрос] Как перейти по ссылке?

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

Есть список ссылок, по которым нужно последовательно перейти/отправить запрос (просто перейти, не открывая браузера типа links и уж тем более firefox). Как это сделать? :))

З.Ы.: Пишу маленький баш скрипт для автоматизации выдачи прав пользователям на одном ресурсе.

Ну, может, wget’ом их скачать?

Если бы было всё так просто.. :))

Нет, wget нужного результата не дает.

А почему не дает? Там хитро. хитрый javascript?

>Нет, wget нужного результата не дает.

Но ведь по ссылке переходит? Может быть вам нужно изменить значение Referer?

> Там хитро. хитрый javascript?

> Нет, wget нужного результата не дает.

Телепаты в отпуске. Вероятно, нужно использовать —save-cookies/—load-cookies.

> > Там хитро. хитрый javascript?

надо было с этого начинать. javascript, вроде w3c умеет, но тебе лучше бы от javascript вообще отказаться.

Тогда расширение iMacros для Firefox.

Если жабаскрипт совсем хитрый, то, видать, придется автоматизировать браузер. Запускать его каждый раз отдельно, может, и не придется. Посмотри интерфейса Mozilla remote или что-нибудь подобное. Хотя, наверное, кто-нибудь придумает что-нибудь получше.

Читайте также:  Сколько строк в файле linux

Выложите куда-нибудь исходник странички + скрипты (если отдельно).

javascript уже не выпилить.

Попробую объяснить суть. Есть пользователь на ресурсе, и я, как администратор, вижу некоторую кнопку (например, «Выдать права бла-бла-бла»). Нажимая на кнопку происходит банальный переход по специфичной ссылке. Вот и хочется как-то автоматизировать этот процесс (для этого нужно всего-то знать ID’шники юзеров)

links, кстати успешно переходит, но тратит время ещё и на загрузку самой страницы.

> Выложите куда-нибудь исходник странички + скрипты (если отдельно).

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

событие происходит при нажатии на кнопку? накидай скрипт на watir’e и запускай его из баш скрипта, времени 2 минуты займет

> javascript уже не выпилить.

Какой версии links? Из него же убрали поддержку javascript.

Да, событие происходит при переходе по специфичной ссылке (которую вызывает нажатие кнопки).
Эммм. watir?

а лучше вообще не пиши на баше а пиши сразу на watir’e. bash абсолютно не подходит для сложной web автоматизации, я гарантирую это.

Web Application Testing in Ruby — маленький фреймворк для ruby, с FF работает без проблем, скрипты пишутся за пару минут.

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

А я вас и не прошу выкладывать ссылку, только исходник странички на которой вы нажимаете кнопку. Можете все ссылки в HTML’ке убрать.

А вообще, берете Wireshark и смотрите куда браузер отправляет запрос при нажатии на кнопку.

Всем спасибо. Решил проблему сс помощью, как ни странно, wget и пары опций :))

Источник

Команда cd

Команда cd в Linux

Текущая рабочая директория — это директория, в которой в текущий момент работает пользователь.

Чтобы была возможность перехода в директорию, пользователь должен обладать правами доступа на выполнение (execute) данной директории.

Для вывода текущей рабочей директории используется команда pwd.

Синтаксис

Опции

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

Примеры использования команды cd

Переход в другую директорию

Перейдем в директорию mydir . В данном случае мы переходим в директорию, которая находится внутри текущей рабочей директории.

Или можно использовать следующую эквивалентную команду:

Перейдем в директорию /etc/apache2 . В данном случае используется абсолютный путь.

Перейдем в директорию, находящуюся в родительской директории (на уровень выше):

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

Переход по символической ссылке

Предположим mylink1 это символическая ссылка на директорию mydir1

Если команде cd в качестве аргумента указать ссылку mylink1 , то текущая рабочая директория изменится на mylink1

$ pwd /home/pingvinus/mydir $ ls -l drwxr-xr-x 2 pingvinus pingvinus 4096 апр 25 18:45 mydir1 lrwxrwxrwx 1 pingvinus pingvinus 6 апр 25 18:45 mylink1 -> mydir1 $ cd mylink1 $ pwd /home/pingvinus/mydir/mylink1

Команда cd переход по символической ссылке

Переход по символической ссылке с разыменованием

Предположим mylink1 это символическая ссылка на директорию mydir1

Читайте также:  Linux kernel segfault at

Воспользуемся опцией -P , чтобы при изменении директории, символическая ссылка была заменена на реальный путь, на который она указывает.

$ pwd /home/pingvinus/mydir $ ls -l drwxr-xr-x 2 pingvinus pingvinus 4096 апр 25 18:45 mydir1 lrwxrwxrwx 1 pingvinus pingvinus 6 апр 25 18:45 mylink1 -> mydir1 $ cd -P mylink1 $ pwd /home/pingvinus/mydir/mydir1

Команда cd переход по символической ссылке с разыменованием

Переход в домашнюю директорию

Домашняя директория текущего пользователя обозначается значком тильда ~ . Для перехода в домашнюю директорию используется команда:

Переход в директорию, содержащую пробелы в имени

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

Также можно использовать обратный слеш \ перед каждым пробелом:

Источник

Символические и жесткие ссылки Linux

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

В Linux существует два типа ссылок на файлы. Это символические и жесткие ссылки Linux. Они очень сильно отличаются и каждый тип имеет очень важное значение. В этой небольшой статье мы рассмотрим чем же отличаются эти ссылки, зачем они нужны, а также как создавать ссылки на файлы в Linux.

Символические ссылки

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

Вот основные особенности символических ссылок:

  • Могут ссылаться на файлы и каталоги;
  • После удаления, перемещения или переименования файла становятся недействительными;
  • Права доступа и номер inode отличаются от исходного файла;
  • При изменении прав доступа для исходного файла, права на ссылку останутся неизменными;
  • Можно ссылаться на другие разделы диска;
  • Содержат только имя файла, а не его содержимое.

Теперь давайте рассмотрим жесткие ссылки.

Жесткие ссылки

Этот тип ссылок реализован на более низком уровне файловой системы. Файл размещен только в определенном месте жесткого диска. Но на это место могут ссылаться несколько ссылок из файловой системы. Каждая из ссылок — это отдельный файл, но ведут они к одному участку жесткого диска. Файл можно перемещать между каталогами, и все ссылки останутся рабочими, поскольку для них неважно имя. Рассмотрим особенности:

  • Работают только в пределах одной файловой системы;
  • Нельзя ссылаться на каталоги;
  • Имеют ту же информацию inode и набор разрешений что и у исходного файла;
  • Разрешения на ссылку изменяться при изменении разрешений файла;
  • Можно перемещать и переименовывать и даже удалять файл без вреда ссылке.
Читайте также:  Linux tftp client get file

Использование ссылок в Linux

Теоретические отличия вы знаете, но осталось закрепить все это на практике, поэтому давайте приведем несколько примеров работы со ссылками в Linux. Для создания символических ссылок существует утилита ln. Ее синтаксис очень прост:

$ ln опции файл_источник файл_ссылки

  • -d — разрешить создавать жесткие ссылки для директорий суперпользователю;
  • -f — удалять существующие ссылки;
  • -i — спрашивать нужно ли удалять существующие ссылки;
  • -P — создать жесткую ссылку;
  • -r — создать символическую ссылку с относительным путем к файлу;
  • -s — создать символическую ссылку.

Создание символических ссылок

Сначала создайте папку test и перейдите в нее:

Затем создайте файл с именем source с каким-либо текстом:

echo «текст текст текст текст» > source
$ cat source

Файл готов, дальше создадим символическую ссылку Linux, для этого используется команда ln с опцией -s:

Попробуем посмотреть содержимое файла по ссылке:

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

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

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

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

Создание жестких ссылок

Снова создайте файл source с произвольным текстом:

echo «текст текст текст текст» > source
$ cat source

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

Посмотрите содержимое файла:

Данные те же самые, а если мы посмотрим вывод утилиты ls, то увидим что inode и права доступа тоже совпадают:

Если для одного из файлов поменять разрешения, то они изменяться и у другого. Теперь удалите исходный файл:

Затем посмотрите содержимое:

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

Выводы

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

На завершение видео про ссылки в Linux:

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Оцените статью
Adblock
detector