как залить файл зенкой на впс ?

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
Создал сайты от root на vps . По ftp если соеденяться - то нет доступа (запрет rootу) а если соеденяться через нового пользователя через фтп - то он не видит сайты..Нужно залить файл как то. Можно еще переназначить права простому пользователю - но не селен в баше - как прописать все это , чтоб запустить 500 команд разных . Кто то может уже поборол это?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 464
Благодарностей
8 686
Баллы
113
Создал сайты от root на vps . По ftp если соеденяться - то нет доступа (запрет rootу) а если соеденяться через нового пользователя через фтп - то он не видит сайты..Нужно залить файл как то. Можно еще переназначить права простому пользователю - но не селен в баше - как прописать все это , чтоб запустить 500 команд разных . Кто то может уже поборол это?
SSH для root включен, можно попробовать через него, то есть через SFTP..
а вообще конечно идеально было через нового пользователя сайты создавать..
еще можно в панели управления попробовать включить FTP для root, если не получится через SFTP..
 
  • Спасибо
Реакции: lzlmrf

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 464
Благодарностей
8 686
Баллы
113

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
хз..я ставлю 22 - но он сбрасывается
 

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
конектится - если не указывать путь на сервере..выдает папки в список. осталось понять что писать в этот путь../root не работает
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 464
Благодарностей
8 686
Баллы
113
конектится - если не указывать путь на сервере..выдает папки в список. осталось понять что писать в этот путь../root не работает
аа, ну значит дело осталось за малым.. :-)
 
  • Спасибо
Реакции: lzlmrf

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
аа, ну значит дело осталось за малым..
конектится - если не указывать путь на сервере..выдает папки в список. осталось понять что писать в этот путь../root не работает
Так все-таки в чем дело оказалось?
У меня те же грабли с путями, под рутом не могу выйти за пределы этой директории (/root), выдает ошибку.
 

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
487
Благодарностей
148
Баллы
43
насколько помню - я в пути указал две точки в начале".."
 
  • Спасибо
Реакции: takerz и bizzon

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
Че вы там такое страшное намутили что оно не заливает?
По умолчанию веста же вроде через своего пользователя ‘admin’ создает каталоги с сайтами. Вот через него о заливайте зенкой по обычному FTP. Вот скрин настроек фтп и кубика заливки, это так у меня на VPS с вестой заливает (архивы сайтов от генератора PandoraBox идут в виде ‘site.ru1.zip’):


Распаковку делаю из под рута в C# кубике зенки (спасибо этой теме):
Код:
unzip -oq /home/admin/web/{-Variable.site_url-}1.zip -d /home/admin/web/{-Variable.site_url-}/public_html/
И удаляем файл:
Код:
rm /home/admin/web/{-Variable.site_url-}1.zip
потом может еще права надо выставить, если какие-то файлы сайта этого требуют. Ну или банально на все сайты (но это брешь в безопасности):
Код:
chmod 777 /home/admin/web/*/public_html
 
Последнее редактирование:
  • Спасибо
Реакции: bizzon

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
Распаковку делаю из под рута в C# кубике зенки (спасибо этой теме):
Имеется ввиду вот этой конструкцией:
var cmd = sshClient.CreateCommand();
cmd.Execute();
А как распаковать, например, в десять директорий?
Как этот список директорий в C# кубике перебрать без необходимости каждый раз делать заново соединение sshClient.Connect();
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
Ну дык не закрывайте соединение. Сделайте отдельно десять команд (unzip1 .... unzip10) на распаковку в разные директории и последовательно их выполняйте.
Вот тогда весь код, может что переделайте:
C#:
string ip = project.Variables["ip"].Value;
string user = project.Variables["user_SSH"].Value;
string pass = project.Variables["password_SSH"].Value;
string unzip1 = project.Variables["unzip1"].Value;
string unzip2 = project.Variables["unzip2"].Value;
string unzip3 = project.Variables["unzip3"].Value;
string SendInfo1 =  "Соединились с сервером " + project.Variables["ip"].Value + " , делаем распаковку";
string SendInfo2 =  "+ распаковка закончилась ";
SshClient sshClient = new SshClient(ip, 22, user, pass);

    sshClient.Connect();
     
        project.SendInfoToLog(SendInfo1, true);
     
        var cmd = sshClient.CreateCommand(unzip1);
        cmd.Execute();
     
        cmd = sshClient.CreateCommand(unzip2);
        cmd.Execute();
     
        cmd = sshClient.CreateCommand(unzip3);
        cmd.Execute();
     
        project.SendInfoToLog(SendInfo2, true);
 
   sshClient.Disconnect();

return "ok";
 
  • Спасибо
Реакции: Prena

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
Да, если 10 - то можно и от руки указать эти переменные, а если что понадобиться 100 , то как здесь через список обыграть?
Чтобы список формировать в стандартном кубике списка, а перебирать в C# кубике с ssh.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
Уточните: один и тот же файл надо разархивировать в несколько директорий (из списка)?
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
точно
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
C#:
string ip = project.Variables["ip"].Value;
string user = project.Variables["user_SSH"].Value;
string pass = project.Variables["password_SSH"].Value;
string SendInfo1 =  "Соединились с сервером " + project.Variables["ip"].Value + " , делаем распаковку";
string SendInfo2 =  "+ распаковка закончилась ";
string unzip_part1 =  "unzip -oq /home/admin/web/DNS13.zip -d"; // это только начало команды распаковки, здесь указан файл архива и ключи распаковки
var baselist = project.Lists["Dir_List"]; // Список директорий должен называться в зенке "Dir_List"
SshClient sshClient = new SshClient(ip, 22, user, pass);

    sshClient.Connect();
    project.SendInfoToLog(SendInfo1, true);
   
        foreach(string str in baselist) // в блоке ниже мы перебираем в цикле каждую строку (str) нашего списка, и выполняем для каждой строки команду распаковки
        {
            string unzip = unzip_part1 + str; // а вот здесь мы добавляем к нашей команде распаковки финальный штрих - директорию куда распаковывать (str)
            var cmd = sshClient.CreateCommand(unzip);  // делаем саму распаковку
            cmd.Execute();
        }

    project.SendInfoToLog(SendInfo2, true);
    sshClient.Disconnect();

return "ok";
Не знаю насколько логично правильно это написано на C#, но проверил на своем сервере, - все работает! Список папок должен называться в зенке Dir_List, и выглядить примерно так:
Код:
/home/admin/DNS1/
/home/admin/DNS2/
/home/admin/DNS3/
/home/admin/DNS4/
/home/admin/DNS5/
Пример с циклом в списке (foreach) позаимствовал в этом посте - http://zennolab.com/discussion/threads/snipety-ot-a-do-ja.13515/#post-80675
 
Последнее редактирование:
  • Спасибо
Реакции: bizzon

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63
orka13, супер, то что надо и самое главное, "позаимствовал в этом посте" - теории урок.
Спасибо огромное!!!
 

takerz

Client
Регистрация
02.07.2016
Сообщения
179
Благодарностей
23
Баллы
18
насколько помню - я в пути указал две точки в начале".."
Благодарю! я 2 часа продолбался, даже ОС переустановил на другую версию и хотел уже фтп сервер ставить. А дело было в точках "../root"!!!
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
29
Благодарностей
1
Баллы
3
Ну дык не закрывайте соединение. Сделайте отдельно десять команд (unzip1 .... unzip10) на распаковку в разные директории и последовательно их выполняйте.
Вот тогда весь код, может что переделайте:
C#:
string ip = project.Variables["ip"].Value;
string user = project.Variables["user_SSH"].Value;
string pass = project.Variables["password_SSH"].Value;
string unzip1 = project.Variables["unzip1"].Value;
string unzip2 = project.Variables["unzip2"].Value;
string unzip3 = project.Variables["unzip3"].Value;
string SendInfo1 =  "Соединились с сервером " + project.Variables["ip"].Value + " , делаем распаковку";
string SendInfo2 =  "+ распаковка закончилась ";
SshClient sshClient = new SshClient(ip, 22, user, pass);

    sshClient.Connect();
    
        project.SendInfoToLog(SendInfo1, true);
    
        var cmd = sshClient.CreateCommand(unzip1);
        cmd.Execute();
    
        cmd = sshClient.CreateCommand(unzip2);
        cmd.Execute();
    
        cmd = sshClient.CreateCommand(unzip3);
        cmd.Execute();
    
        project.SendInfoToLog(SendInfo2, true);

   sshClient.Disconnect();

return "ok";

подскажите пожалуйста какая команда, что бы залить архив(файл) на сервер, например C:\Users\ и тд на сервер в папку, уже весь интернет перерыл от и до, везде то копирование с папки в папку, то с сервера на сервер, то еще бог знает, что, а простейшей команды нигде не встречу.
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
"C:\Users\" это не "архив(файл)", это просто папка. Наверное, стоит ее сжать в архив и описанным методом заливать.
 

Prena

Новичок
Регистрация
26.11.2017
Сообщения
29
Благодарностей
1
Баллы
3
это я для примера написал, что путь именно с компа, пускай будет файл подскажите пожалуйста команду
scp путь с компа /var/ www/ user/d ata/www/domain.com/ не так же)
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 166
Благодарностей
2 167
Баллы
113
До меня дошло что я заливал по FTP, а уже распаковку архивов делал через SSH. Вы же вроде спрашиваете, как именно заливать по SSH. Но увы, с таким на зенке не сталкивался, так что не помогу. Может кто другой подскажет.
 
  • Спасибо
Реакции: Prena

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)