Как называется технология автоматического переключения пользователя...
... между WiFi точками одной сети?
... между WiFi точками одной сети?
в Чем проблема?
Создал username и группу username.
# visudo
%username ALL=/bin/pwd, /bin/ls
:wq
но почему-то пользователь всеравно исполняет и ping и cd и прочее
Копируем из /data/test файлы в такую же директорию
rsync -avn root@123.456.789.123:/data/test/ /data/test
и
rsync -avn root@123.456.789.123:/data/test /data/test
весь прикол в последнем / в SRC
В чём отличие?
В первом случае на выходе (ключ -n)
test/
test/file.log
Во втором:
./
file.log
собственно как?
rsync -arlptvv -e «ssh -p 21» user@host:/var/lib/mysql var/lib/mysql
Обязательно ли OC должны быть одинаковы на мастер и слейв?
И насколько разными могут быть конфигурации железа мастера и слейва?
I-Love-Microsoft написал тут мысль обозначеную в заголовке
Ищу работу дистрибутивостроителем / системным программистом (комментарий)
«но лучше бы нашелся хоть один адекватный человек, чтобы сделать дистрибутив с нескучными пакетами, которые бы несли все зависимости в себе, поверх некоей минимальной базовой системы. Типа макинтош, типа Ubuntu Personal. Каждая лягушка делает свой дистр, но все как один сует пакеты с зависимостями.»
Проприетарщики этим и занимаются, что создают ОГРОМНЫЕ бандлы со своим софтом, дошло до того, что питон с полсотней нескучных «батареек» там лежит.
Я не пойму в чем проблема создавать пакетики? Они же в большинстве случаев автоматически создаются, зависимости находятся и прописываются автоматически.
Почему стремятся к dll hell?
Aug 10 13:46:19 server systemd[1]: Starting MariaDB 10.1.34 database server...
Aug 10 13:46:19 server mysqld[8855]: 2018-08-10 13:46:19 139628363585792 [Note] /usr/sbin/mysqld (mysqld 10.1.34-MariaDB) starting as process 8855 ...
Aug 10 13:46:20 server systemd[1]: mariadb.service: main process exited, code=exited, status=1/FAILURE
Aug 10 13:46:20 server systemd[1]: Failed to start MariaDB 10.1.34 database server.
Aug 10 13:46:20 server systemd[1]: Unit mariadb.service entered failed state.
Aug 10 13:46:20 server systemd[1]: mariadb.service failed.
Как в таком случае дебажить запуск MariaDB?
дана строка:
«abcdefgabcdfsdfsdvevmeveorvorevoervoervokerivekrvekrovekro»
я знаю что есть буква f и что я буду читать после третьей буквы
Обычный способ ясен(псевдокод):
int counter_f = 0;
for(;;)
{
if (symbol == 'f') {
counter++
}
if (counter == 3) {
{
//делаем дело
}
}
А как такое сделать при помощи <algorithm>
backup.sql ~ 300Gb
mysql -u root -p databasename < backup.sql
Распаковывается четвертый день на Xeon E5 с кучей Gb оперативы на рейд массив.
Так и должно быть или это как-то можно ускорить?
Да я вкурсе про мастер-слейв репликацию.
Хочу установить файл в /usr/bin, но скрипт неизвестно где ожидает найти этот файл. Файл simple-1.0.tar.gz в котором директория simple-1.0 в которой файл simple.py находится в SOURCES
Вопрос: где скрипт ожидает файл simple.py и как ему его указать?
Summary: Simple python script
License: MIT
Name: simple
Version: 1.0
Release: 1%{?dist}
Source0: %{name}-%{version}.tar.gz
Group: Application/Multimedia
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: python-devel
Requires: python
Requires: python-requests
%description
Simple description for simple python script.
%prep
%setup -q
%install
rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py
%clean
rm -rf $RPM_BUILD_ROOT
%files
/usr/bin/simple.py
%changelog
* Fri Jul 27 2018 Ycewc Rvdfvf <sdvsdvsdv@ssdvsdvdv.ru>
- test changelog
Это лог
#!/bin/sh
RPM_SOURCE_DIR="/home/builder/rpmbuild/SOURCES"
RPM_BUILD_DIR="/home/builder/rpmbuild/BUILD"
RPM_OPT_FLAGS="-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables"
RPM_ARCH="i386"
RPM_OS="linux"
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS
RPM_DOC_DIR="/usr/share/doc"
export RPM_DOC_DIR
RPM_PACKAGE_NAME="simple"
RPM_PACKAGE_VERSION="1.0"
RPM_PACKAGE_RELEASE="1.el6"
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE
LANG=C
export LANG
unset CDPATH DISPLAY ||:
RPM_BUILD_ROOT="/home/builder/rpmbuild/BUILDROOT/simple-1.0-1.el6.i386"
export RPM_BUILD_ROOT
PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/lib/pkgconfig:/usr/share/pkgconfig"
export PKG_CONFIG_PATH
set -x
umask 022
cd "/home/builder/rpmbuild/BUILD"
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "${RPM_BUILD_ROOT}"
mkdir -p `dirname "$RPM_BUILD_ROOT"`
mkdir "$RPM_BUILD_ROOT"
cd 'simple-1.0'
LANG=C
export LANG
unset DISPLAY
rm -rf $RPM_BUILD_ROOT
install -m 0775 simple.py $RPM_BUILD_ROOT/usr/bin/simple.py
/usr/lib/rpm/check-rpaths /usr/lib/rpm/check-buildroot
/usr/lib/rpm/redhat/brp-compress
/usr/lib/rpm/redhat/brp-strip /usr/bin/strip
/usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
/usr/lib/rpm/redhat/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump
/usr/lib/rpm/brp-python-bytecompile /usr/bin/python
/usr/lib/rpm/redhat/brp-python-hardlink
/usr/lib/rpm/redhat/brp-java-repack-jars
Хочу собрать свой пакет со своим ПО. По задумке архитектуры файлов в Linux я должен поместить его в
* бинарник/скрипт в /usr/local/bin
* всякие остальные файлы в соответствии каталогами (иконки в icons, примеры в examples) в /usr/local/share
* библиотеки в /usr/local/lib
* конфигурации в /usr/local/etc
Разумеется это будет rpm'ка/deb'ка
Вопросы:
Да, да я знаю про 5 звезд XD
mkfs.ext4 /dev/sdb1
Из голой консоли.
Если, например я запускаю cfdisk, то я вижу только sda1.
Но RAID массива у меня два: RAID1 (sda/sdb) RAID 1(sdc/sdd)
как мне добраться до sdc/sdd ?
struct.unpack('!%df' % blockSize, buf)
! - big-endian, а %df - double/float?
buf по длине - 88 символов
в одном символе 4 байта типа float, соответственно в blockSize = 22
Как это переделать в PHP?
unpack('f', buf); // f - float
Добрый день.
Столкнулся с задачей переезда на другой физический сервер работающей базы. Сделать это нужно без потери данных в момент переезда. Как это сделать?
Правильно ли я понимаю что для этого нужно подготовить две базы и делать синхронную репликацию мастер на старом сервере - слейв на новом, а потом слейв сделать мастером?
Если есть руководство грамотное как провернуть такой переезд может у кого завалялась ссылочка?
Если код вставить и запустить, он будет работать, но заблокирет окошкко от перемещения:
Вопрос как поправить и где чтобы потоки работали как надо, графики рисовали, а окошко не блокировалось?
import random
import threading
import time
import tkinter as tk
from queue import Empty, Queue
from time import time as timer
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
def get_xy_from_db(id): # generate dummy data
#time.sleep(random.random()) # emulate blocking function
list_x = list(range(1, 16))
list_y = list(random.sample(range(0,100),15))
res_lst = list_x + list_y
return res_lst
def poll_db(id, emit): # NOTE: interval is independant from the delay
while True:
#time.sleep(interval)
emit(get_xy_from_db(id))
def poll_db_2(id, emit): # NOTE: interval is independant from the delay
while True:
#time.sleep(interval)
emit(get_xy_from_db(id))
def make_x_y(list_a):
done_x=list_a[:15]
done_y=list_a[15:]
return done_x, done_y
def start_polling_loop(root, q, delay):
def loop():
timeout_millis = round(delay - (1000 * timer()) % delay)
root.after(timeout_millis, loop)
a.clear()
try:
data = q.get(block=False)
x, y = make_x_y(data)
a.plot(x, y)
canvas.draw()
except Empty:
return
root.after_idle(loop) # start
def start_polling_loop_2(root, q_2, delay):
def loop():
timeout_millis = round(delay - (1000 * timer()) % delay)
root.after(timeout_millis, loop)
a1.clear()
try:
data = q_2.get(block=False)
x, y = make_x_y(data)
a1.plot(x, y)
canvas.draw()
except Empty:
return
root.after_idle(loop) # start
if __name__ == "__main__":
root = tk.Tk()
q = Queue() # первая очередь для первого графика
q_2 = Queue() # вторая очередь для второго
# соответствующие потоки
threading.Thread(target=poll_db, args=[1, q.put], daemon=True).start()
threading.Thread(target=poll_db_2, args=[2, q_2.put], daemon=True).start()
start_polling_loop(root, q, delay=40)
start_polling_loop_2(root, q_2, delay=40)
f = Figure(figsize=(8, 4), dpi=100)
a = f.add_subplot(1, 2, 1) # расширим сетку для второго графика
a1 = f.add_subplot(1, 2, 2) # добавим второй график в сетку
canvas = FigureCanvasTkAgg(f, master=root)
canvas.show()
canvas.get_tk_widget().grid(row=0, column=0)
root.mainloop()
Смысл такой: нарисовать график при помощи get_latest_data(1) и через 5 секунд поменять его на данные из get_latest_data(2)
from threading import Thread
from queue import Empty, Queue
import time
import tkinter as tk
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg#, NavigationToolbar2TkAgg
from matplotlib.figure import Figure
class tkChartGUI(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def get_latest_data(self, dataid):
x_array=[]
y_array=[]
if (dataid == 1):
x_array=[1,2,3,4,5,6,7,8,9,10,11,12,13,14];
y_array=[0.5,0.7,0.3,1.0,0.6,0.9,0.5,0.2,0.1,0.5,0.33,0.55,0.3,0.6]
if (dataid == 2):
x_array=[1,2,3,4,5,6,7,8,9,10,11,12,13,14];
y_array=[0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.1,1.2,1.3]
return (x_array, y_array)
def initUI(self):
self.parent.title("Simple chart")
self.parent.geometry("800x600+300+100")
result_queue = Queue()
Thread(target=self.get_latest_data, args=[result_queue], daemon=True).start()
x_array, y_array = self.get_latest_data(1)
f = Figure(figsize=(5, 3), dpi=150)
a = f.add_subplot(111)
a.set_xlabel("Values_X")
a.set_ylabel("Values_Y")
a.yaxis.grid(True, which='major')
a.xaxis.grid(True, which='major')
a.plot(x_array, y_array)
canvas = FigureCanvasTkAgg(f, master=self.parent)
canvas.show()
canvas.get_tk_widget().grid(row=0,column=0)
def display_result(a, q):
x_array = []
y_array = []
try:
x_array = q.get(block=False) # get data
y_array = q.get(block=False)
a.plot(x_array, y_array)
canvas.draw()
except Empty:
#a.clear()
timeout_millis = round(100 - (5000 * time.time()) % 100)
self.parent.after(timeout_millis, display_result, a, q)
def get_result(q):
x_array, y_array = self.get_latest_data(2)
q.put(x_array) # put data in FIFO queue x coords array
q.put(y_array) # put data in FIFO queue y coords array
display_result(a, result_queue)
def onExit(self):
self.quit()
def main():
root = tk.Tk()
my_gui = tkChartGUI(root)
root.mainloop()
if __name__ == '__main__':
main()
awk работает так:
awk '{код программы}' file.txt
Вопрос: как перехватить итоговый вывод awk без использования bash?
Сейчас пишу так:
#!/usr/bin/env bash
$name=file.txt
result=$(awk '{код программы}' $name)
if [$result .. ]; then
echo ....
else
echo
fi
Как сделать конструкцию if-else в однострочнике awk? Вывести одно число или другое в зависимоти от уловия
http://php.net/manual/ru/function.socket-create.php#101012
Вот так в примере описывается пакет:
$package = "\x08\x00\x7d\x4b\x00\x00\x00\x00PingHost";
Смотрим ICMP протокол, раздел формат пакета:
Тип - 8 байт,
Код - 8 байт,
Контрольная сумма - 16 байт
Вопрос1 и 2: где? что? (для данного пакета)
Вопрос3 и 4: как выглядит пакет с данными, которые отправляет утилита ping?
| ← назад | следующие → |