LINUX.ORG.RU

Сообщения kyka276

 

Ищу удалённую работу техподдержка/сисадмин. Начальный опыт есть.

Ищу удалённую работу техподдержка/сисадмин. Начальный опыт есть. Почта starovoyt1993@yahoo.com Телеграм @crazyman678

 , , , ,

kyka276
()

Отработал 2 недели эникеем

Всех приветствую! Есть мысль, хочу поделится и, по возможности, получить советы от опытных специалистов. Проработав год в хелпдеске банка, решил уйти по причине дальнейшего развития в направлении системного администрирования. Устроился «эникеем» в фирму примерно на 80 компов с одним сисадмином. К слову, фирма «семейная», в верхах и руководителях отдела сидят родственники и близкие люди собственников фирмы. Админ оказался очень хорошим парнем и весьма амбициозным на словах, но на деле получается всё достаточно уныло. Своей функции я там не понимаю - по большей части сижу целый день в инете, и только пару раз за день мне дают задания типо переместить компьютер сотрудника с одного места на другое или помочь найти кнопочку в системе. Сам вкатывался в домен на домашнем ПК на виртуалке, освежаю знания по сетям и Линуксу - самообучаювь ,в общем, но от админа отдачи никакой. Принял решение завтра уволится. Тем более, что есть оффер от другой компании, деятельность которой тесно связана с IT и техподдержкой на Линуксе. Отсюда вопрос - правильно ли я всё делаю на данный момент? На что в дальнейшем стоит обратить внимание при трудоустройстве на аналогичную должность?

 , ,

kyka276
()

Настройка VPN

Добрый день! Задача следующая - есть хост с виндузой и две виртуалки - xubuntu(1) и lubuntu(2). Задача - поднять под (1) VPN и подключить к нему виндузу и (2). Сервер успешно настроил, виндовый vpn-клиент подключается, а вот клиент с (2) не хочет, постоянно выстреливает следующее:

pppd: The remote system is required to authenticate itself 
pppd: but I couldn't find any suitable secret (password) for it to use to do so.

Никак не могу с этим справится. Вот листинг chap-secrets:

linux 192.168.255.128 (это адрес сервера) moluli86(это пароль) *

Вот листинг /etc/ppp/peers/vpn:

pty "192.168.255.128 --nolaunchpppd"
name linux
file /etc/ppp/pptpd-options

Прошу помощи в решении проблемы.

 , ,

kyka276
()

Курсы или пособия по проектированию трансляторов

Добрый вечер! Необходимо пройти курс по проектированию трансляторов либо курс по «устройству работы» компиляторов. Буду благодарен за ссылки на материалы или Ваш личный опыт.

 ,

kyka276
()

Внесение данных из формы в базу perl dbi

Есть маленькая база test_db с одной таблицей test_lab, в которой два поля - id и fio. Вот скрипт, с помощью которого в форму вносится ФИО, затем по нажатию кнопки данные вносяться в базу и выводяться в браузер:

#!/usr/bin/perl
# Путь к интерпретатору
#прагмы интерпретартора
use strict;
use warnings;
#подключаемые модули
use CGI;
use DBI;
my $query=new CGI;
# подключение к базе данных
my $dbh=DBI->connect('DBI:mysql:database=test_db;host=localhost','root','q',
{AutoCommit=>1,RaiseError=>1,PrintError=>0});
my $t = $query->param("t");
print "Content-Type: text/html\n";
print "\n";
if ($t eq "save") {
    my $fio = $query->param("fio"); 
    my $sth = $dbh->prepare("INSERT INTO test_lab VALUES(null,?);");
    $sth->execute($fio);
    $sth = $dbh->prepare("SELECT * FROM test_lab;");
    $sth->execute();
    while (my @row = $sth->fetchrow_array) {
        print $row[1]."<br>";
    }
}
print "<html><head></head><body>
      <form action='/index.pl'>
        <input type='hidden' name='t' value='save'>
        <input type='text' name='fio'> </br>
        <input type='submit'>
      </form>
</body></html>";

Мне нужно добавить в таблицу пару полей, что я через консоль mysql успешно сделал, база сейчас выглядит так:

Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| fio      | varchar(100) | YES  |     | NULL    |                |
| birthday | int(4)       | NO   |     | NULL    |                |
| gender   | varchar(10)  | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+

Я так понимаю, что в html-разметку нужно дописать input'ы для вставки в поля birthday и gender. А вот как это правильно дописать в самом коде - малость не понимаю...что нужно помудрить с INSERT INTO... Буду признателен за помощь!

 , ,

kyka276
()

Советы при написании интернет-магазина

Взял себе в качестве дипломного проекта написание небольшого интернет-магазина автозапчастей, ибо интересует веб-разработка в целом + реальная возможность получить первый опыт + практика на реальном «проекте». При разработке хочу использовать HTML+CSS+JS/JQuery/AJAX+MySQL+PHP. Так же интересует такое понятие, как CMS... Почитал в интернете в целом об этой штуковине и хочу задать знатокам вопрос - как можно использовать CMS в написании собственного веб-приложения? Поделитесь, пожалуйста, опытом и советами, буду предельно признателен :)

 , ,

kyka276
()

настройка nginx+perl

Решил себе поставить на ubuntu 14.04 nginx+perl+mysql. Поставил командой sudo apt-get install mysql-server nginx fcgiwrap. Установилось всё без проблем. Так же через cpan установил DBI и CGI, установка прошла успешно. Создал так же файл /etc/nginx/sites-available/test.com и в этот файл записал следующее:

server {
    listen   80;
    server_name test.com;    access_log /home/www/test.com/logs/access.log;
    error_log /home/www/test.com/logs/error.log;
    root   /home/www/test.com/public_html;
    location ~ \.pl$ {
        gzip off;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/var/run/fcgiwrap.socket;
        fastcgi_index index.pl;
        fastcgi_param SCRIPT_FILENAME /home/www/test.com/public_html/index.pl;
    }
    location / {
        index  index.pl;
    }
}

В директории /etc/nginx/sites-enable сделил символическую ссылку на ../sites-available/test.com

Вот содержание файла /etc/hosts : 127.0.0.1 localhost 127.0.1.1 ubuntu 127.0.0.1 test.com

# The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters

Сам скрипт для запуска лежит по адресу /home/www/test.com/public_html/index.pl Вот его содержимое:

#!/usr/bin/perl
  #
  # The traditional first program.

  # Strict and warnings are recommended.
  use strict;
  use warnings;

  # Print a message.
  print "Hello, World!\n";

Перезапускаю nginx и переходя по адресу http://test.com/index.pl или просто по test.com получаю ошибку 502 BAD GATEWAY...

Вот что по этому поводу пишеться в логе: 2017/03/27 05:13:35 [error] 2706#0: *1 FastCGI sent in stderr: «Cannot execute script (/home/www/test.com/public_html/index.pl)» while reading response header from upstream client: 127.0.0.1, server: test.com, request: «GET /indexpl HTTP/1.1», upstream: «fastcgi://unix:/var/run/fcgiwrap.socket:», host: «test.com»

Помогите, пожалуйста, разобраться новичку с настройкой :)

 ,

kyka276
()

Поговорим о фронт-энде

Господа, назрел такой интересный вопрос - что, собственно говоря, входит в обязанности тру-фронта? И обязан ли тру-фронт заниматься вёрсткой макетов? С того же psd-шаблона, например. И как с подобными задачами справляются с учетом использования GNU/Linux? Какой инструментарий при разработке в приоритете? Интересуют все-все мнения :)

 ,

kyka276
()

Добавить сортировку по времени

Написал скрипт, суть задания его такова: «Командный файл, который из каталога, указанного в командной строке первым параметром (если такого каталога нет – выдача диагностического сообщения) выбирает имена файлов, начинающиеся либо с латинской буквы, либо с другого символа в зависимости от ключа, указанного вторым параметром в командной строке (если второго параметра нет – выдача диагностического сообщения), сортирует их по времени создания и выдает их пронумерованный список в файл „my_sort“.»

Вот единственное, что не могу понять, как из этого задания влепить - это сортировка по времени... Может, кто нибудь знает, как сортировку по времени правильно реализовать?

#!/bin/csh

if ( ! -d $1 ) then
	echo 'Dir not exist'
	exit;
endif
if ( $2 == '' ) then
        echo 'Second argument is empty'
        exit;
endif
set i = 1
set files = `ls -a --time=ctime $1`
foreach f ($files)
	switch ($f)
		case [A-z]*:
		if ( $2 == letter ) then
			echo "$i " $f >> tmp
                        @ i = $i + 1
		endif
		breaksw
		default:
                if ( $2 == symbol ) then
                        echo "$i " $f >> tmp
                        @ i = $i + 1
                endif
		breaksw
	endsw
end

cat tmp>my_sort
rm -f tmp

 

kyka276
()

Потоки

Подскажите, пожалуйста, что означает функция (на языке Си) thread_enqueue() ?

 

kyka276
()

Как Вы изучали Java?

Вопросы к Java-программистам. Как опытным, так и начинающим. Почему выбрали именно Java? Сколько времени вы потратили на изучение до уровня Java Junior Developer? Какими источниками обучения пользовались? Что посоветуете человеку, который только взялся как за Java, так и программирование в целом?

Перемещено mono из talks

 ,

kyka276
()

Кто какой ВУЗ заканчивал?

Интереса тред.

Кто какой ВУЗ заканчивал? Пригодились ли вам полученные знания, как и диплом в целом? Какие воспоминания остались о ВУЗе? Что было самым сложным? А что давалось легко?

 

kyka276
()

Ошибка при компиляции

Есть программа:

#include <iostream>

#include <sys/types.h>

#include <sys/stat.h>

#include <unistd.h>

#include <stdio.h>

#include <dirent.h>

#include <string.h>

#include <stdlib.h>

#include <sys/time.h>

#include <sys/resource.h>

#include <sys/syscall.h>

#include <pthread.h>

#include <cstdio>



using namespace std;



void* procInfo(void*);

mode_t readUmasl();

int cntOpenFiles();

void printArgv();

void printCodDataStackEnvSegment();



char** argvG;

int argcG;

extern char** environ;



int main(int argc, char** argv)

{

  argvG =  (char**)malloc(argc*sizeof(char*));

  memcpy(argvG, argv, argc*sizeof(char*));

  argcG = argc;

  procInfo(NULL);

  if(!fork())

  {

//printf("-------------------CHILD_PROC-------------------\n");  

  cout << "-------------CHILD PROCESS-------------" << "\n";

    procInfo(NULL);

  }

  wait();

  pthread_t thread_id;

//printf("------------------IN_THREAD-----------------\n"); 

 cout << "-------------IN THREAD-------------"<< "\n";

  pthread_create(&thread_id, NULL, procInfo, NULL);

  pthread_join(thread_id, NULL);

  pause();

return 0;

pause();

}



void* procInfo(void* data )

{

  cout << "PID: " << getpid() << "\n";

  cout << "PPID: " << getppid() << "\n";

  cout << "UID: " << getuid() << "\n";

  cout << "GID: " << getgid() << "\n";

  cout << "SID: " << getsid(getpid()) << "\n";

  cout << "PGID: " << getpgid(getpid()) << "\n";

  cout << "UMASK: "<< readUmasl() << "\n";

  cout <<"Control terminal:";

  if(isatty(0))

      cout << ttyname(0);

  else

      cout <<"closed";

  cout <<"\n";

  char buff[256];

  getcwd(buff, 256);

  cout << "Current directory: " <<buff<< "\n";

  cout << "count open files: " << cntOpenFiles() << "\n";

  cout << "Priority: " <<  getpriority(PRIO_PROCESS, getpid());



  printf("\n-------------------Priority-------------------\n");

  setpriority(PRIO_PROCESS, getpid(),5);

  cout << "Priority: " <<  getpriority(PRIO_PROCESS, getpid());

  printArgv();

  printCodDataStackEnvSegment();

  return NULL;

}



mode_t readUmasl()

{

  mode_t mask = umask(0);

  umask(mask);

  return mask;

}



int cntOpenFiles()

{

  char buff[256];

  sprintf(buff,"/proc/%i/fd",getpid());

  DIR *dir = opendir(buff);

  

  int i=0;

  dirent* entry;

  while((entry = readdir(dir))!=NULL)

  {

     ++i;

  }

  closedir(dir);

  i -= 3; 

  return i;

}



void printArgv()

{

  for(int i=0; i <argcG; i++)

  {

      cout << argvG[i];

  }

  cout << "\n";

}



void printCodDataStackEnvSegment()

{

  // Cod segment 1

  char buffer[256];

  sprintf(buffer, "/proc/%i/maps", getpid());

  FILE *map = fopen(buffer, "r");

  fgets(buffer,256,map);

  char *pCodSegStart = strtok(buffer, "-");

  char *pCodSegEnd = strtok(NULL, " ");

  cout << "Code segment: " << pCodSegStart <<" " << pCodSegEnd << "\n";

  // Data segment 3

  char buffer1[256];

  fgets(buffer1,256,map);

  fgets(buffer1,256,map);

  char *pDataStart = strtok(buffer1, "-");

  char *pDataEnd = strtok(NULL, " ");

  cout << "Data segment: " << pDataStart <<" " << pDataEnd<< "\n";

  fclose(map);

  // Stack segment 3 с конца

  if (syscall(SYS_gettid) == getpid())

  {

    cout << "in main thread \n";

    char buff[256];

    sprintf(buff, "/proc/%i/maps", getpid());

    map = fopen(buff, "r");

    int i = 0;

    while(fgets(buff,256,map) != NULL){

	    ++i;

    }

    rewind(map);

    int j = 0;

    for (; j != i - 2; ++j ){

	    fgets(buff, 256, map);

    }

    fclose(map);

    char *pStackStart = strtok(buff, "-");

    char *pStackFinish = strtok(NULL, " ");

    cout << "Stack segment: " << pStackStart <<" " << pStackFinish<< "\n";

  }

  else

  {

    void *addr;

    size_t size;

    pthread_t self;

    pthread_attr_t attr;

    

    self = pthread_self();

    pthread_getattr_np(self, &attr);

    pthread_attr_getstackaddr(&attr, &addr);

    pthread_attr_getstacksize(&attr, &size);

    

    cout << "in non main thread now \n";

   

    printf("stack addr = %0lx\n", addr);

    printf("stack addr = %0lx\n", addr-size);



  }

  

  // Env segment

  cout << "Enviroment segment: "<< environ[0] << " ";

  int i = 0;

  while(environ[i + 1] != NULL) {

	  ++i;

  }

  cout <<  environ[i] + strlen(environ[i]) + 1 << "\n";

}

Делаю gcc program.c - получаю ошибку «program.c:1:20: fatal error: iostream: No such file or directory #include <iostream> ^ compilation terminated.»

В чем причина?

 

kyka276
()

Проблема с make

При попытке собрать проект (учебный) с помощью make вылазит вот такое: make: *** No rule to make target `dc.h', needed by `array.o'. Stop. Содержимое файла Makefile:

LANG = cc

CC = g$(LANG)

FLAGS = -ansi -Os

DEB_FLG= 

O_FILES = array.o stack.o dc.o misc.o numeric.o eval.o string.o

dc:  $(O_FILES)

	$(CC) $(DEB_FLG) $(FLAGS) -o dc $(O_FILES) -L. -lbc

clean:

	rm -f $(O_FILES)

dcdeb: 

	make clean

	make DEB_FLG=-g	

dcplus:

	make clean

	make LANG=++

array.o: array.c dc.h dc-regdef.h

	$(CC) $(DEB_FLG) $(FLAGS) -c array.c dc.h dc-regdef.h -L. -lbc

dc.o: dc.c dc.h dc-regdef.h getopt.h

	$(CC) $(DEB_FLG) $(FLAGS) -c dc.c dc.h dc-regdef.h getopt.h -L. -lbc

misc.o: misc.c dc.h 

	$(CC) $(DEB_FLG) $(FLAGS) -c misc.c dc.h -L. -lbc

eval.o: eval.c dc.h

	$(CC) $(DEB_FLG) $(FLAGS) -c eval.c dc.h -L. -lbc

numeric.o: numeric.c dc.h number.h

	$(CC) $(DEB_FLG) $(FLAGS) -c numeric.c dc.h number.h -L. -lbc

stack.o: stack.c dc.h dc-proto.h dc-regdef.h

	$(CC) $(DEB_FLG) $(FLAGS) -c stack.c dc.h dc-regdef.h -L. -lbc

string.o: string.c dc.h

	$(CC) $(DEB_FLG) $(FLAGS) -c string.c dc.h -L. -lbc

misc.a: misc.c eval.c

	$(CC) $(FLAGS) -c -fPIC misc.c

	$(CC) $(FLAGS) -c -fPIC eval.c

	ar rc misc.a misc.o eval.o

В чем может заключаться ошибка?

 ,

kyka276
()

Нужна помощь по C-SHELL

Добрый вечер, господа. Нужна очень-очень помощь по csh. Не успеваю за лабораторными, пока что еще не начал осваивать эту оболочку, а задание делать надо, рассчитываю на помощь знакотов! Задание «Командный файл, в котором просматриваются все подкаталоги текущего каталога и создаются два списка каталогов. Если в просматриваемом подкаталоге число файлов меньше 10, то список этих файлов со строкой- заголовком - полным именем подкаталога, дописывают в файл „Littlelist“ иначе - в „Biglist“.»

Буду очень признателен!

 csh shell

kyka276
()

Установка системы управления проектами Redmine на Ubuntu

В учебных целях необходимо установить Redmine на Ubuntu 15.04 vivid x64. Перелопатил весь гугл, в том числе и официальные мануалы с сайта Redmine - не работает. То с MySQL проблемы, то сам Редмайн при установке выбрасывает ошибки, то Apache2 не конфигурируется... Реально, перелопатил весь гугл, пробовал кучу мануалов и везде свои подводные камни. Может, кто из форумчан знает, как без проблем поставить это чудо на Ubuntu? Поделитесь опытом, буду признателен!

 , , ,

kyka276
()

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