Jump to content

ytf

Members
  • Content Count

    146
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by ytf

  1. Можно запускать обновление не вручную, а по расписанию, допустим 1 раз при каждом включении пк. Если файлы сайта располагаются в директории /var/www/s1.local, то можно создать файл /var/www/s1.local/check.online.sh #!/bin/bash INTERNET_STATUS="" while [ "$INTERNET_STATUS" != "UP" ] do ping -c 1 -W 0.7 8.8.4.4 > /dev/null 2>&1 if [ $? -eq 0 ] ; then INTERNET_STATUS="UP" else sleep 4 fi done; php -q /var/www/s1.local/obnov.php >> /home/user/obnovlenie_firefox_i_flash.txt 2>&1 Открыть терминал и выполнить команду: sudo crontab -e , добавить в конец файла строку @reboot /var/www/s1.local/check.online.sh Сохранить изменения с помощью двух команд "Ctrl+O", "Ctrl+X"
  2. насколько я понял, приложения, написанные для виндовс, будут притормаживать в линукс, а их запуск повлечёт за собой возможность срабатывания виндовс-вирусов, поэтому не рекомендую данный путь какое приложение вы пытались установить?
  3. грузиться с лив сиди, читать логи и публиковать ошибки, найденные в логах, на форумах
  4. никогда не встречал книг о том, как устроены линукс-системы
  5. Здравствуйте! к разработчику программы xrdp вы обращались? сообщили ему/ей об ошибке?
  6. Для обновления браузера firefox и flash плагина я написал php скрипт, который состоит из директории 777 ( всем пользователям даны права на запись в эту директорию), файла nget.php и файла obnov.php, все файлы можно разместить на одном из локальных сайтов. Содержимое файла nget.php <?php define("KURL_LOGIROVANIE", false); // true - если нужно сохранять ответы на http запросы в текстовый файл, иначе - false define("FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV", __DIR__.'/777/curl_zaprosy.txt'); // путь к текстовому файлу, в который будут записываться URL адреса страниц, ошибки, результаты запросов define("FILE_DLYA_ZAPISI_KUKIS", __DIR__.'/777/curl_kuki.txt'); // путь к текстовому файлу, в который будут записываться кукис define("KURL_PAUZA", 50); // на какое число микросекунд скрипт засыпает перед следующим http запросом $last_curl_url = array(); // последний открытый сетевой адрес // сетевой запрос /* Параметры массива add: * yupi - строка логин:пароль для http авторизации * xml - добавляет заголовок ajax запроса * json - согласие получить в ответ json * post - массив данных, отправляемых формой * multi - массив данных, отправляемых формой в виде multipart-formdata * move - ограничить число допустимых редиректов, по умолчанию 5 * top - включать заголовок в ответ функции, по умолчанию да * save - сохранить ответ в файл с именем * proxy - прокси * ref - ссылка, с которой мы перешли * req - request запрос * nobody - получение только заголовков header */ function nget($url="",$add=array()) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $url."\n", 8); if (!function_exists("curl_init")) return fget($url,$add); if (!($curl = curl_init())) return NULL; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_COOKIEJAR, FILE_DLYA_ZAPISI_KUKIS); curl_setopt($curl, CURLOPT_COOKIEFILE, FILE_DLYA_ZAPISI_KUKIS); curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64; rv:69.0) Gecko/20100101 Firefox/69.0'); if (isset($add['yupi'])) curl_setopt($curl, CURLOPT_USERPWD, $add['yupi']); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); $headers = array(); if (isset($add['xml'])) { // ajax запрос $headers[] = 'X-Requested-With: XMLHttpRequest'; }; if (isset($add['nobody'])) { // header запрос curl_setopt($curl, CURLOPT_NOBODY, 1); $add['move'] = 0; $add['top'] = 1; }; if (isset($add['json'])) { // json запрос $headers[] = 'Accept: application/json'; }; if (isset($add['post'])) { // post запрос curl_setopt($curl,CURLOPT_POST, TRUE); curl_setopt($curl,CURLOPT_POSTFIELDS, http_build_query($add['post'])); }; if (isset($add['multi'])) { // post multi/part запрос curl_setopt($curl,CURLOPT_POST, TRUE); curl_setopt($curl,CURLOPT_POSTFIELDS, $add['multi']); }; if (isset($add['req'])) { // request запрос curl_setopt($curl,CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($curl,CURLOPT_POSTFIELDS, $add['req']); $headers[] = 'Content-Type: application/json'; }; if (!isset($add['move'])) $add['move'] = 5; if ($add['move']>0) { // разрешены редиректы $add['top'] = true; // включать header в ответ } if (!isset($add['top']) OR isset($add['save'])) $add['top']=false; curl_setopt($curl, CURLOPT_HEADER, $add['top']); if (isset($add['proxy'])) curl_setopt($curl, CURLOPT_PROXY, $add['proxy']); if (isset($add['ref'])) curl_setopt($curl, CURLOPT_REFERER, $add['ref']); curl_setopt($curl, CURLOPT_RETURNTRANSFER, (isset($add['save'])?false:true)); if (isset($add['save'])) { // сохранить файл в if (FALSE===($out = fopen($add['save'],"w+"))) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,"failed opening of file ".$add['save']."\n",8); exit; } curl_setopt($curl, CURLOPT_FILE, $out); } curl_setopt($curl, CURLOPT_FORBID_REUSE, false); curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, isset($add['time'])?$add['time']:120); curl_setopt($curl, CURLOPT_TIMEOUT, isset($add['time'])?$add['time']:120); $no_header_params = array('xml','json','post','move','top','save','yupi','ref','proxy','multi','req','time','nobody'); if (!empty($add)) foreach ($add as $k=>$h) if (!in_array($k,$no_header_params)) $headers[] = $h; if (!empty($headers)) curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); global $last_curl_url; $last_curl_url[] = $url; while (1) { usleep(KURL_PAUZA); $data = curl_exec($curl); if (KURL_LOGIROVANIE==true) file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $data, 8); $curl_errno = curl_errno($curl); if ($curl_errno > 0 AND $curl_errno!=28) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,'cURL Error ('.$curl_errno.'): '.curl_error($curl)." on curl ".var_export($last_curl_url,1)."\n",8); curl_close($curl); exit; } if ($add['move']<1) break; $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); if ($code != 301 && $code != 302) break; $header_start = strpos($data, "\r\n")+2; $headers = substr($data, $header_start, strpos($data, "\r\n\r\n", $header_start)+2-$header_start); if (!preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $headers, $matches)) break; $newurl = $matches[1]; if (!strpos($newurl, "//")) { $old_url_parts=explode("//",end($last_curl_url)); $old_url_http_part=$old_url_parts[0]; $old_url_host_part=explode("/",$old_url_parts[1]); $newurl=$old_url_http_part.'//'.$old_url_host_part[0].$newurl; } curl_setopt($curl, CURLOPT_URL, $newurl); file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $newurl."\n", 8); $last_curl_url[] = $newurl; $add['move']--; // уменьшение числа разрешённых редиректов }; curl_close($curl); if (!$add['top']) { $ah = strpos($data, "\r\n\r\n")+4; if ($ah<200 AND substr($data,0,21)=='HTTP/1.1 100 Continue') $ah = strpos($data, "\r\n\r\n", $ah)+4; $data = substr($data, $ah); } if (isset($add['save'])) { fclose($out); return 1; } return $data; } /* аналог curl с помощью file_get_contents */ function fget($url="",$add=array()) { $arrContextOptions=array( "ssl"=>array( "verify_peer"=>false, "verify_peer_name"=>false, ), "http"=>array( "user_agent"=>'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0' ) ); $headers = array(); if (isset($add['xml'])) { // ajax запрос $headers[] = 'X-Requested-With: XMLHttpRequest'; }; if (isset($add['json'])) { // json запрос $headers[] = 'Accept: application/json'; }; if (isset($add['post'])) { // post запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = http_build_query($add['post']); }; if (isset($add['multi'])) { // post multi/part запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = $add['multi']; }; if (isset($add['req'])) { // request запрос $arrContextOptions['http']['method'] = "POST"; $arrContextOptions['http']['content'] = $add['req']; $headers[] = 'Content-Type: application/json'; }; if (!isset($add['move'])) $add['move'] = 5; if ($add['move']>0) { // разрешены редиректы $add['top'] = true; // включать header в ответ } if (!isset($add['top']) OR isset($add['save'])) $add['top']=false; if (isset($add['proxy'])) $arrContextOptions['http']['proxy'] = $add['proxy']; if (isset($add['ref'])) $headers[] = 'Referer: '.$add['ref']; if (isset($add['save'])) { // сохранить файл в if (FALSE===($out = fopen($add['save'],"w+"))) { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV,"failed opening of file ".$add['save']."\n",8); exit; } } $arrContextOptions['http']['timeout'] = isset($add['time'])?$add['time']:10; $no_header_params = array('xml','json','post','move','top','save','yupi','ref','proxy','multi','req','time'); if (!empty($add)) foreach ($add as $k=>$h) if (!in_array($k,$no_header_params)) $headers[] = $h; if (isset($add['yupi'])) $headers[] = 'Authorization : Basic '.base64_encode($add['yupi']); if (!empty($headers)) $arrContextOptions['http']['header'] = $headers; global $last_curl_url; $last_curl_url[] = $url; usleep(KURL_PAUZA); $data = file_get_contents($url, false, stream_context_create($arrContextOptions)); if (KURL_LOGIROVANIE==true) file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, $data, 8); if (isset($add['save'])) { fclose($out); return 1; } return $data; } // сетевой запрос, скачивающий файл с помощью консольной команды wget function wget($url="",$filename="") { if (function_exists('system')) { usleep(KURL_PAUZA); system('wget -O '.$filename.' '.$url,$retval); } else return false; return ($retval===0); } // найти участок кода между двух строк function iska($nachalo, $konec, $string) { if (!preg_match('/'.preg_quote($nachalo,'/').'(.*)'.preg_quote($konec,'/').'/ismU',$string,$nashli)) return ''; return $nashli[1]; } // удалить участок кода между двух строк function udal($nachalo, $konec, $string) { return preg_replace('/'.preg_quote($nachalo,'/').'.*'.preg_quote($konec,'/').'/ismU','',$string); } // очистка логов запросов function ochistka_logov_zaprosov() { file_put_contents(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV, ""); } // проверка, давно ли не было запросов function dolgo_ne_bylo_http_zaprosov($dolgo=50) { $a = time(); $b = filemtime(FILE_DLYA_ZAPISI_POLUCHENNYH_OTVETOV); if ( ($a-$b)>$dolgo ) return true; else return false; } Содержимое файла obnov.php <?php ignore_user_abort(true); ini_set("max_execution_time",3600); ini_set("memory_limit","1200M"); require 'nget.php'; $f=time(); $wd=__DIR__.'/777/'; // директория для записи файлов $u = "https://download.mozilla.org/?product=firefox-latest-ssl&os=linux64&lang=ru"; var_dump($u); $h=nget($u, array('nobody'=>1)); //echo $h; $n=iska('releases/','/',$h); var_dump($n); $o=1; // обновлять ли программу if (file_exists($wd.'firefox.version')) { $pn=file_get_contents($wd.'firefox.version'); if ($pn==$n) $o=0; } file_put_contents($wd.'firefox.version',$n); if ($o) { if (preg_match("!\r\n(?:Location|URI): *(.*?) *\r\n!", $h, $matches)) { $newurl = $matches[1]; var_dump($newurl); unlink($wd.'firefox.tar.bz2'); nget($newurl, array('save'=>$wd.'firefox.tar.bz2')); $output = shell_exec('tar -vxjf '.$wd.'firefox.tar.bz2 -C /opt'); file_put_contents($wd.'firefox.output.txt',$output); } } echo 'firefox ok'; echo "\n"; $u = "https://get.adobe.com/ru/flashplayer/"; var_dump($u); $h=nget($u, array()); //echo $h; $n=trim(iska('Версия','<',$h)); var_dump($n); $o=1; // обновлять ли программу if (file_exists($wd.'flash.version')) { $pn=file_get_contents($wd.'flash.version'); if ($pn==$n) $o=0; } file_put_contents($wd.'flash.version',$n); if ($o) { $h1 = iska('case "3":','case "4":',$h); var_dump($h1); $h2 = iska('$("#buttonDownload").attr("href","','"',$h1); var_dump($h2); if ($h2!=='') { $h=nget("https://get.adobe.com/".$h2, array()); $newurl = iska("location.href = '","'",$h); sleep(2); unlink($wd.'flash.tar.gz'); var_dump($newurl); nget($newurl, array('save'=>$wd.'flash.tar.gz')); $output = shell_exec('tar -xzvf '.$wd.'flash.tar.gz -C /usr/lib/mozilla/plugins libflashplayer.so'); $output2 = shell_exec('tar -xzvf '.$wd.'flash.tar.gz -C / usr'); file_put_contents($wd.'flash.output.txt',$output."\n".$output2); } } echo 'flash ok'; echo "\n"; Для обновления браузера firefox и flash плагина достаточно в терминале выполнить команду sudo php -q /директория_в_которой_находятся_файлы_сайта/obnov.php Если php не установлен, его можно установить с помощью команды sudo apt-get install php Поскольку скрипт устанавливает программу firefox в директорию opt, для запуска firefox нужно будет использовать команду /opt/firefox/firefox -P default Если раньше firefox вы запускали с помощью другой команды, то может потребоваться изменить команду запуска в меню автозагрузки и в меню запуска приложений.
  7. ytf

    stumpwm

    в crunchbangplusplus я просто добавил команду setxkbmap -layout "us,ru" -model "pc105" -option "grp:ctrl_shift_toggle,grp_led:scroll" & в автозагрузку и у меня происходит смена раскладки по нажатию ctrl+shift
  8. может вы пунто свитчер используете или другой кейлоггер?
  9. значит его не обязательно создавать при разметке диска
  10. под словом boot я подразумевал раздел, в который записывается загрузчик, например загрузчиком может быть grub2, то есть установщик операционной системы спрашивает "какой раздел вы хотите сделать загрузочным?" и там есть возможность выбрать жесткий диск или его раздел иногда загрузчик не помещается в первые байты жесткого диска и нужно сначала создать раздел, например 1 гб, потом создать остальные разделы, потом удалить первый раздел
  11. не знаю, но скорее всего разбивка мало отличается от других линукс ос например, в дебиан достаточно двух разделов "/ - root" и "swap" если это вторая ос на компьютере, то после установки второй ос первая может не загрузиться, в зависимости от совместимости загрузчика, разделом boot может быть дисковый накопитель, например, /dev/sda
  12. скорее всего есть другие программы, аналогичные тимвьюер по функционалу, например VPNC
  13. 76. Установка firefox Программу можно скачать по ссылке https://download-installer.cdn.mozilla.net/pub/firefox/releases/66.0.2/linux-x86_64/ru/firefox-66.0.2.tar.bz2 Распаковать архив можно в терминале с помощью команды sudo tar -vxjf /home/user/Audiobooks/firefox-66.0.2.tar.bz2 -C /opt Запустить можно в терминале с помощью команды /opt/firefox/firefox -P default 77. установка flash скачиваем версию tar.gz на сайте https://get.adobe.com/ru/flashplayer/ в директорию /home/user/Audiobooks sudo tar -xzvf /home/user/Audiobooks/flash_player_npapi_linux.x86_64.tar.gz -C /usr/lib/mozilla/plugins libflashplayer.so sudo tar -xzvf /home/user/Audiobooks/flash_player_npapi_linux.x86_64.tar.gz -C / usr
  14. В моём случае установлена ОС линукс debian 9 "crunchbangplusplus" Откройте терминал и выполните команду sudo apt-get install apache2 php libapache2-mod-php mariadb-server mariadb-client mariadb-common phpmyadmin на этапе установки phpmyadmin выберите веб-сервер apache и можете отказаться от создания базы данных. Откройте файл /etc/apache2/sites-available/s1.local.conf sudo geany /etc/apache2/sites-available/s1.local.conf и напишите в нём <VirtualHost *:80> ServerAdmin admin@s1.local ServerName s1.local ServerAlias www.s1.local DocumentRoot /var/www/s1.local ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> Откройте файл /etc/hosts sudo geany /etc/hosts добавьте в него строку 127.0.0.1 s1.local Изменим пароль сервера баз данных sudo mysql_secure_installation В качестве текущего пароля ничего не вводим, просто нажимаем Enter, в качестве нового пароля, если доступа к сайту из вне не планируется, просто напишем "root" Подключимся к серверу баз данных sudo mysql -u root -p Вводим ранее указанный пароль "root" Вводим команды: CREATE DATABASE s1; CREATE USER 'user'@'localhost' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON s1.* TO 'user'@'localhost'; quit; Включим домен s1.local sudo a2ensite s1.local.conf sudo a2dissite 000-default.conf sudo systemctl reload apache2 Настройка завершена. Мы создали сайт с адресом "s1.local", файлы которого расположены по адресу "/var/www/s1.local"
  15. 75. Можно добавить панель быстрого запуска некоторых программ sudo apt-get install plank После установки можно добавить программы firefox-esr, thunar и cbpp-exit в быстрый запуск. Иконки я решил заменить, они в приложении к сообщению. Для cbpp-exit нужно создать специальный файл sudo geany /usr/share/applications/cbpp-exit.desktop [Desktop Entry] Name=Выход (Выключение или перезагрузка компьютера) Exec=cbpp-exit Icon=/usr/share/icons/hicolor/48x48/apps/cbpp-exit.png Type=Application
  16. я находил в интернете сообщения о том, что давать консультации о том, как уменьшить налогообложение фирмы, не законно возможно и в вашем случае такая консультация не является законной чтобы не раздавать интернет на компьютер есть варианты: 1. пользоваться интернетом на смартфоне, подключив к нему клавиатуру, мышь, жк-тв или монитор по hdmi кабелю 2. подключить проводной интернет к компьютеру 3. подключить к компьютеру 4g модем и переставить симку 4. поискать другого 4g оператора, или сообщить город 5. собрать деньги на кикстартере и запустить нового 4g оператора без ограничений по расшариванию
  17. crunchbangplusplus, tiny core linux
  18. здравствуйте, попробуйте ввести пароль с клавиатуры так, как вы его обычно вводите
  19. попробуйте запустить "иксы", например, командой startx
  20. например, вы запускаете терминал и в терминале пишите geany ~/.fluxbox/startup если установлен другой текстовый редактор, то вместо geany может быть gedit или nano в открывшемся редакторе жмёте Ctrl+F и ищете строку exec fluxbox, либо без Ctrl+F просто глазами читаете и находите нужную строку перед найденной строкой вы добавляете команду запуска нужной программы и символ & например, "plank &" получится "plank & exec fluxbox" сохраняете файл, перезагружаете компьютер, должна запуститься добавленная программа если не запускается, то либо команду ввели не верно, либо требуются рут-права, во втором случае можно попробовать другой метод автозагрузки
  21. можно попробовать установить puppy вместо puppyrus по инструкции https://losst.ru/kak-ustanovit-puppy-linux
  22. я ввёл в поиске https://duckduckgo.com/?q=fluxbox+autostart&amp;t=ffsb&amp;ia=web и нашёл страницу http://fluxbox-wiki.org/category/howtos/en/Editing_the_startup_file.html если инструкция не устарела, нужно открыть файл ~/.fluxbox/startup и добавить в него нужные программы
×
×
  • Create New...