LINUX.ORG.RU

Сообщения danacn

 

Не корректная работа incron

Добрый день. Появилась необходимость следить за измененнием файла. Если в файл внесенны изменения. Запускать скрипт. Решила реализовать через incron.

В /var/spool/incron/root добавила запись: /etc/client.conf IN_MODIFY /.../reconfig.sh $# $%

При первом измененни файла, все нормально работает, скрипт запускается. Но если файл, был изменен повторно, то не чего не срабатывает. Срабатывает, толко если после первого срабатывания скрипта ввести команду systemctl restart incrond.

Как сделать, что б все работало без перезапуска?

 ,

danacn
()

While с двумя условиями

Как сделать, что б цикл while выполнялся, пока одно из условий верное? Или чем можно заменить данную конструкцию? Например, нужно чтоб файлы из dir_1 по одному перемещались в dir_2, до тех пор пока или файлы в dir_1 закончатся или размер dir_2 будет >= 200 Mb.

cd $dir_1
 size_2=$(du -m $dir_2 | awk '{print $1}' )
   while [[ $size_2 -le "200" ]] || [[ -n `ls -1 $dir_1` ]]; do
       file=$(ls -1tr $dir_1 | head -n 1)
       mv -t $dir_2 $dir_1/$file
       size_2=$(du -m $dir_2 | awk '{print $1}' )
   done
В таком виде даже, если папка dir_1 уже пустая, он все равно продолжает работать.

 

danacn
()

Сравнение массивов

Добрый день. Есть два файла: file1.txt, file1.txt.bak. В обоих файлах есть массив client_id со списком клиентов.
Например, client_id = ( 1 4 8 10 )
client_id = ( 1 7 4 10 30 )
Нужно сравнить эти два массива и получить два списка:
1. Список тех элементов которых, нету в первом массиве ( 7 30 )
2. Список тех, элементов которых нету в втором массиве ( 4 8 )
Как это сделать?

 ,

danacn
()

Неправильная дата в логах rsync

Логи rsync.conf

2018/07/17 09:48:16 [58220] send UNKNOWN ….
2018/07/17 09:48:16 [58220] send UNKNOWN ….
2018/07/17 09:48:16 [58220] send UNKNOWN ….
2018/07/17 09:48:16 [58220] sent 103040 bytes  received 140 bytes  total size 102558
2018/07/17 12:48:21 [58223] name lookup failed for : Name or service not known
2018/07/17 12:48:21 [58223] connect from UNKNOWN () ….
2018/07/17 09:48:21 [58224] rsync on ….
2018/07/17 09:48:21 [58224] building file list
2018/07/17 09:48:21 [58224] sent 67 bytes  received 25 bytes  total size 0
2018/07/17 12:48:21 [58231] name lookup failed for 6: Name or service not known
2018/07/17 12:48:21 [58231] connect from UNKNOWN ()
2018/07/17 09:48:21 [58236] rsync to / from @UNKNOWN ()
2018/07/17 09:48:21 [58236] receiving file list
2018/07/17 09:48:21 [58236] ./
2018/07/17 09:48:22 [58236] recv UNKNOWN ….
2018/07/17 09:48:22 [58236] recv UNKNOWN ….
2018/07/17 09:48:22 [58236] recv UNKNOWN ….
2018/07/17 09:48:22 [58236] sent 113 bytes  received 102841 bytes  total size 102528
2018/07/17 12:48:57 [58223] sent 0 bytes  received 0 bytes  total size 0
2018/07/17 12:48:57 [697] sent 0 bytes  received 0 bytes  total size 0
2018/07/17 12:51:57 [675] rsyncd version 3.1.2 starting, listening on port 873

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

 ,

danacn
()

Подключение по ssh при помощи expect

Есть bash скрипт который при определённых условиях должен подключаться по ssh к разным хостам и забирать у них файлы. Для автоматизации данного процесса в скрипте создана функция для подключения с используется expect.

SSH1() {
#Список хостов:
HOSTS=$(cat /home/ip.txt | grep "client-$num" | awk '{print $2}')
#Команды для expect:
COMM="
#Соедиение ssh:
spawn scp -r client-$num@$HOSTS:/home/client/ /etc/openvpn/keys/
expect \"*(yes/no)?*\" {send \"yes\r\"}
expect \"Password:\"
send \"$PASSWD\r\"
#Завершение выполнения expect:
expect eof
"
#Запуск expect с набором команд:
expect -c "$COMM"
}

После того как файлы были забраны у хоста, необходимо проверить эти файли и выполнить еще пару команд. Но все команды которые стоят после данной функции выводиться в консоли с «+» в начале и не выполняться. Я так понимаю, что expect воспринимает их как свои команды. Как это исправить?

 

danacn
()

Как убрать ошибку AUTH_FAILED при использовнии client-connect?

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

script-security 3
client-connect "/etc/openvpn/connect_control.sh 1"
client-disconnect "/etc/openvpn/connect_control.sh 2"

После этого клиенты перестали подключаться к серверу. В логах:

Wed Jul  4 13:07:40 2018 [client1] Peer Connection Initiated with [AF_INET]192.168.***.***:1194
Wed Jul  4 13:07:41 2018 SENT CONTROL [client1]: 'PUSH_REQUEST' (status=1)
Wed Jul  4 13:07:41 2018 AUTH: Received control message: AUTH_FAILED
Wed Jul  4 13:07:41 2018 SIGTERM[soft,auth-failure] received, process exiting

OpenVPN, который установлен на Ubuntu отлично работает с данными скриптами. А вот на CentOS работать не хотят.

 ,

danacn
()

OpenVPN client: выполнение скрипта при отключении сервера

На сервере в конфигурации есть client-disconnect. При отключении клиента запускается скрипт. Можно ли что, то такое сделать на клиенте? Что б при отключении сервера запускался скрипт.

 ,

danacn
()

Удаление файлов во время передачи rsync

как сделать, чтобы rsync удалял файлы сразу же, а не после завершения всего процесса синхронизации? Сейчас с remove-source-files- rsync удалить все лишь после всей передачи. А нужно, чтобы удалял сразу после копирования текущего файла.

 

danacn
()

Оповещение сервера об окончании передачи rsync

Есть два компьютера. Один работает как клиент, другой как сервер. Клиент время от времени передаёт данные на сервер при помощи rsync (daemon). Можно ли какие-то передать серверу после передачи код завершения rsync? Что б удаленный компьютер знал, что данные передались или что произошла ошибка номер такой-то.

 

danacn
()

Проблема с запуском OpenVPN

Сейчас запускаю Openvpn через: service openvpn start. Все работает, но у меня есть сервер на котором два конфига: сервера и клиента Openvpn. Service перезапускает сразу и сервер и клиента Openvpn. Поэтому, для перезапуска только клиента или только сервера решила использовать команду: openvpn server.conf Но она не работает. После запуска консоль виснет, и ничего не происходит. При этом в логах пишется, что клиент подключился. И openvpn server действительно работает. При нажатии ctrl+c, консоль опять работает, соединение пропадает и в логах пишется

Thu May 10 02:20:02 2018 LC-50/192.168.255.130:44175 SENT CONTROL [LC-50]: 'PUSH_REPLY,route 10.8.70.0 255.255.255.0,route 10.8.70.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.70.6 10.8.70.5' (status=1)
Thu May 10 02:25:47 2018 event_wait : Interrupted system call (code=4)
Thu May 10 02:25:47 2018 /sbin/ip route del 10.8.70.0/24
RTNETLINK answers: Operation not permitted
Thu May 10 02:25:47 2018 ERROR: Linux route delete command failed: external program exited with error status: 2
Thu May 10 02:25:47 2018 Closing TUN/TAP interface
Thu May 10 02:25:47 2018 /sbin/ip addr del dev tun0 local 10.8.70.1 peer 10.8.70.2
RTNETLINK answers: Operation not permitted
Thu May 10 02:25:47 2018 Linux ip addr del failed: external program exited with error status: 2
Thu May 10 02:25:47 2018 SIGINT[hard,] received, process exiting 
Тоже самое и с запуском клиента. Как решить данную проблему?

 

danacn
()

OpenVPN: два сервера у одного клиента

Добрый день. Помогите пожалуйста решить проблему.

сервер 1 сервер 2 || / Клиент

Сервер 1: Ip сервера1: 192.168.255.100 Ip tun: 10.8.0.1 Сервер 2: Ip сервера2: 192.168.255.200 Ip tun: 10.8.1.1 Клиент: Ip клиента: 192.168.255.105 Ip tun: 10.8.0.5 У серверов и клиента конфигурации стандартные. Между сервером 1 и клиентом создан туннель, по которому они обмениваются данными.

Необходимо что б клиент мог обмениваться данными по OpnVPN с сервером 1 и сервером 2. Можно ли как-то сделать, что бы у одного клиента OpenVPN было 2 сервера без дополнительных конфигов. 1. Возможно ли такое сделать через маршрутизацию? 2. Возможно ли сделать что б клиент подключался к серверу 2 через remove, через определенный промежуток времени? Так, он переключается в том случаи, если сервер 1 не доступен.

 

danacn
()

client-disconnect

client-disconnect < command > - выполнить команду, когда клиент отключился.

Сейчас у меня при отключении клиента выполняется скрипт # client-disconnect «/etc/openvpn/disconnect.sh»

На данный момент нету потребности в выполнении целого скрипта. Можно ли заменить скрипт на одну команду? Например, client-disconnect «touch /путь/имя_файла» Или client-disconnect может выполнять только скрипты?

 

danacn
()

OpenVPN.Передача сертификатов и ключей клиентам

Есть клиент и сервер Ubuntu на которых сейчас работает OpenVPN. В будущем между ними будут передаваться данные при помощи rsync. Сейчас возникла проблема с передачей сертификата и ключа клиенту с сервера. Пока есть один клиент он подключается к серверу при помощи scp и забирает ключи. Но когда клиентов будет больше нужно будет сделать так, что бы каждый клиент имел доступ на сервере только к своей папке с ключами. Была идея при создании ключе для нового клиента, на сервере создавать пользователей и ложить ключи в его домашнюю директиву. Но если будет очень много клиентов то это будет не удобно. Кто работал с OpenVPN подскажите пожалуйста как можно реализовать передачу ключей клиенту?

 ,

danacn
()

RSS подписка на новые темы