Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Задание с файлами

Написать скрипт, который выводит имена файлов с расширением "txt", которые совпадают по содержимому с заданным файлом. Если совпадений нет - сообщить об этом. Всё обыскал, не могу найти как сделать.
Ответ: Если требуется байт в байт, то, например, cmp.
Вопрос: Написать скрипт который обходит открытые sreen’ы на других машинах

Необходимо написать скрипт на python, который открывает все screen'ы открытые на других машинах под моим логином.

Суть проблемы в том, что необходимо скриптом открыть терминал, заломиться по ssh на машину, и открыть указанные screen'ы в нём. Желательно одной командой.

Выбор пал на что-то вроде:
Bash
1
gnome-terminal --command="ssh <user>@<ip> && screen <id>"
Но при таком раскладе терминал открывается, логинится и закрывается, либо просто логинится и выкидывает на приглашение.
Основной вопрос состоит в том, каким образом можно запустить терминал и передать в него список команд на выполнение, притом, чтобы все они выполнились?

Написана часть скрипта на python

Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/bin/python
# -*- coding: utf-8 -*- 
 
import sys
import os
import getpass
import pexpect
 
user = os.getlogin()
ip = sys.argv[1:]
pas = list()
screens = dict()
 
for adr in ip:
    pas.append(getpass.getpass("Пароль для %s: "%adr))
 
for ia, adr in enumerate(ip):
    command = "ssh %s@%s ls /var/run/screen/S-%s"%(user, adr, user)
    exp = pexpect.spawn(command)
    exp.expect("password:")
    exp.sendline(pas[ia])
    exp.expect(pexpect.EOF)
    screens[adr] = exp.before
 
for opt in screens:
    screens[opt] = screens[opt].split()
    for isc, screen in enumerate(screens[opt]):
        screens[opt][isc] = screen.split(".")[0]


Заранее благодарен за помощь.
Ответ: Marinero, спасибо, помог ключ -t у ssh.

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

Сообщение от Marinero
Почему именно на нем?
Почему не подходит стандартная процедура ssh команда?
Потому что мне удобнее писать на python, bash я знаю "постольку-поскольку", и что-то сложнее echo "Hello, world" я не напишу на нём. Да и к тому же, я для того и пишу скрипт, чтобы руками не открывать каждый скрин, по 4-6 скринов на 4 - 5 машинах.
Вопрос: Написать скрипт, который выводит имена всех пользователей системы и их идентификаторы (UID)

написать скрипт, который выводит имена всех пользователей системы и их идентификаторы (UID) таким образом:
имя1 uid=999
имя2 uid=888
Ответ:

Не по теме:

Ремарка:

Сообщение от nezabudka
Идентификаторы пользоваетелей обычно начинаются с 1000
В Ubuntu (и нектоторых других дистрах)

Вопрос: Нужно написать скрипт который проверяет изменения в файле

Нужно написать скрипт который проверяет изменения в файле каждые десять секунд.
Если строки были изменены то вывести измененную строку.
Ответ: Если Вам нужна измененная строка, то дополнительно должен хранится файл-образец.
Код Bash
1
2
3
4
5
cp testing.file template.file
watch -n 10 "
diff -ay --suppress-common-lines --from-file=template.file testing.file | 
grep -o '\b[^|]*$' && 
cp testing.file template.file"
Вопрос: Удалить файлы из каталога, которых нет в другом каталоге

Мне нужно удалить файлы из каталога, которых нет в другом каталоге. То есть в папке 1 есть 3 файла:"А", "Б" и "В". В папке 2 есть 5 файлов:"А", "Б", "В", "Г", "Д". Нужно из папки 2 удалить "Г" и "Д".
Делаю так:
Bash
1
2
3
4
var_1="";
var_1=$(diff $path $pathC);
cd $pathC;
rm $var_1;
И это работает. Но команда diff выводит результат в виде:
Только в /home/1/A
Только в /home/1/B
И так далее. Поэтому команда rm не только удаляет файлы но и пишет ошибки, поскольку файла "Только" и файла "в" нету.
Подскажите как исправить это?
За ранее спасибо
Ответ:
Bash
1
find $path $pathC -type f -printf "%f\n" | sort | uniq -u | while read d; do find $path $pathC -type f -name "$d" -delete; done
Добавлено через 3 часа 0 минут
Ой, я наверное не правильно задачу поняла. Написала строчку удаляющую файл с уникальным
именем в любой из двух директорий. Тогда такой вариант, замените diff на fgrep
Bash
1
var_1=$(fgrep -v -f <(ls $path) <(ls $pathC))
Вопрос: Нужно создать скрипт который будет заходить по ssh на сервер

 Комментарий модератора vavun
Перенесено из


Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/expect
set timeout 60
spawn ssh user@x.x.x.x
set timeout 2000
expect "user@x.x.x.x' s password: "
set timeout 2000
send "********"
expect " FG******2 $ "
send "\r"
send "config vdom \r"
expect "FG******2 (vdom) $ "
send "\r"
send "edit ****** \r"
send "\r"
expect "FG******2 (ASTEL) $ "
set timeout 2000
send "get router info routing-table bgp \r" 
set timeout 2000
send "\r"
send "\r"
send "\r"
Добавлено через 42 секунды
send "get router info routing-table bgp \r" - эта строка не выполняется
Ответ: да, работает

Добавлено через 7 часов 25 минут
Нашел решение, все выполнил putty, осталось найти команду, которая будет копировать полученные данные в новый документ.txt
Вопрос: Определить товары, в названии которых есть "BALL" и их количество

Здравствуйте,нужна ваша помощь!
Задание:
В файле query3 определить товары, в названии которых фигурирует "BALL", и их общее количество (Выполнить обработку файла с помощью awk)
Файл query3:

Помогите,будте добры!
Ответ:
Bash
1
awk -F\! '$2 ~ /BALL/{print $2; count++}END{print "Total goods:", count}' query3
Вопрос: Научиться пользоваться Терминалом

Добрый день. Совсем недавно стал пользоваться Ubuntu после Windows и операционнка, честно сказать, привлекла и во всем устраивает. Но решил все таки разобраться, ем же так притягателен консольный способ команд:
Не могу понять, что же я делаю не так. Почему терминал не может найти файл "Изображения", когда ясно видно что он есть, и даже я получил список этого каталога. Но почему не каждый раз так происходит...
Спасибо!!!
Ответ:
Сообщение от shurik2548
Думаю поменять все названия папок на английские.
Хорошая идея. Или можно симлинки сделать:
Bash
1
ln -s Документы Documents
В именовании файлов имеет смысл ограничиваться ASCII и не допускать пробелов. В графической среде хотя бы можно раскладку поменять, а в текстовом терминале что делать?..

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

Сообщение от shurik2548
А нельзя никак переписать команды под русскую раскладку...???
Неа. К этим командам сводится функционирование всей системы. В частности, латинские имена имеют все программы, их опции и системные директории. Это давно придумали, гораздо раньше линукса.
Вопрос: Команда-скрипт для открытия "Панели Управления" по клику. OS LM 17.1 "Rebecca" Cinnamon

Здравствуйте.
Настроил систему под себя, включил в настройках панели "Параметры автоматического скрытия" - Автоматически скрывать панель. Вместо "Панели Управления" включил в Docky на верхней панели - "Отображение приложений не имеющих ярлыков". В общем удобно если включить опцию "Интелектуальное скрытие", но не полнофункционально - НЕТ ВОЗМОЖНОСТИ ПРОСМОТРА РАСКЛАДКИ "RUS" или "EN". В "Докклетах" и "Дополнениях" Docky - этой функции тоже нет... И для того, что бы узнать раскладку, приходится перемещать курсор в верх экрана для открытия панели - что не очень удобно.
Видео:
---------------------------------------------------------------------------------------
С помощью утлиты "xdotool" создал скрипт для смены раскладки клавиатуры:

Смена раскладки.sh
------------------
#!/bin/sh

# Смена раскладки клавиатуры

xdotool key 37+50
sleep 1



# Открыть панель управления

?????????????
(добавить команду)
?????????????


------------------

Локаль меняется, но опять же скрыто...Хотелось бы совместить "Открытие панели" во время "Смены раскладки".
Нужен ( ????? команда-скрипт ????? ) для открытия панели.
------------------

Подскажите где находится файл конфигурации "Панели Управления"
для которой создана вот эта оболочка:


И в правильном ли направлении я "копаю".
Гугл результатов не дал.

За ранее спасибо.
Ответ: Здравствуйте helter

"Наверно, симулировать движение мыши с помощью того же xdotool" - спасибо за подсказку, очень пригодилась !


Создал скрипт:
#!/bin/sh

# Смена раскладки клавиатуры
xdotool key 37+50
sleep 1

# Координаты индикатора "Раскладка клавиатуры"

xdotool mousemove --sync 1747 0

# --------------------------------------------------------

# Задержка курсора на панели

sleep 1 # Отображение курсора на индикаторе
# sleep 2,2 # Короткое отображение курсора на индикаторе

# --------------------------------------------------------
xdotool mousemove_relative --sync 0 0

# Возврат курсора на кнопку "Сменить раскладку клавиатуры"

xdotool mousemove_relative --sync 0 1040

# ---------------------------------------------------------

# ПАНЕЛЬ (настройки) "sleep 1"

# Задержка перед показом - 500
# Задержка перед скрытием - 500


# ПАНЕЛЬ (настройки) "sleep 2,2"

# Задержка перед показом - 0
# Задержка перед скрытием - 500

# ---------------------------------------------------------


# xdotool позволяет перемещать указатель мыши по экрану, используя команду MouseMove. В X Window System языком, начало экрана в верхнем левом углу, которая имеет X и Y (горизонтальная и вертикальная) координаты 0 и 0. Если разрешение экрана 1024x768, то координаты для в правом верхнем углу локации 1023 (X) и 0 (Y). В нижней правой является 1023 (Х) и 767 (Y), и так далее.

# --------------------------------------------------------

# Ссылки: 1).
# 2).
# 3).
# 3).
# 4).


Видео:
Вопрос: Steam (Не удалось запустить игру "не найден исполняемый файл")

Вчера установил убунту (до этого с ней не работал).

Брат попросил установить ему Dota 2.

Установил стим/скачал доту. Запускаю ее и появляется эта ошибка:
Не удалось запустить игру "не найден исполняемый файл"

Один метод пробовал(нашел в сети):
в стиме на игре жмем "Свойства"/"Локальные файлы"/"Проверить целостность кеша" ---- Не помогло!

Есть еще варианты?
На Windows(которая стояла до этого) - работала нормально!
Ответ: VaLenOK007, ок. Спасибо. Буду изучать все))))))))

Добавлено через 6 часов 33 минуты
VaLenOK007, Я установил доту на не стандартный путь... перезагружаю комп, пробую запустить доту. а оно мне выдает, что у меня нету доты и опять предлагает мне ее скачать. Че за фигня то такая????