Como direcionar comandos para dentro do SCREEN?

1. Como direcionar comandos para dentro do SCREEN?

Mario Augusto Paglia Junior
mpagliajr

(usa CentOS)

Enviado em 03/08/2017 - 20:09h

Pessoal, estou montando um script que usa o SCREEN, consegui fazer ele desligar o processo do SCREEN, porém gostaria de fazer com que ele enviasse alguns comandos para dentro da janela aberta também. Separei da seguinte forma:

#!/bin/bash
# Desenvolvido por: Mário Augusto Paglia Júnior
# Paglia Host Brasil: www.pagliahost.com.br
####
# Script do comando SV, para ligar, desligar, compilar e baixar emuladores
####
# Versões:
# 1.0 - 26/07/2017 - Criação do Script
# 1.1 - 01/08/2017 - Correção e Adição de Novas Funções

emulador=/home/emulador
banco=/var/lib/phpMyAdmin/upload/

case $1 in
'ligar') cd $emulador; exec ./login-server & exec ./char-server & exec ./map-server & exec ./loginserv & exec ./charserv & exec ./mapserv & exec ./login-server_sql & exec ./char-server_sql & exec ./map-server_sql ;;
'desligar') ps ax | grep -E "login-server|char-server|map-server|ragnarok" | awk '{print $1}' | xargs kill; echo "O seu servidor foi finalizado com sucesso!" ;;
compilar | compilar-autoconf) cd /home/emulador; make clean; make sql; ;;
'screen') screen -S ragnarok ;;
'retornar') screen -r ragnarok ;;
'preparar') cd $emulador; chmod 777 configure; ./configure; echo "As permissões foram preparadas com sucesso!" ;;
'backup') cd /home; rar a backup_`date +%d_%m_%y_%H_%M`.rar emulador; mkdir backup; mv backup_`date +%d_%m_%y_%H_%M`.rar /home/backup ;;
'antigo') cd /home; rar a emulador_antigo_`date +%d_%m_%y`.rar emulador; mkdir backup; mv emulador_antigo_`date +%d_%m_%y`.rar /home/backup ;;
'baixar-emulador') echo "Para baixar um emulador, use um dos seguintes comandos: sv baixar-cronus | sv baixar-brathena | sv baixar-hercules";;
'baixar-cronus') cd /home; sv antigo; rm -rf emulador; mkdir emulador; svn co https://github.com/Cronus-Emulator/Cronus/trunk emulador; echo "O seu emulador foi baixado com sucesso e se encontra dentro de /home/emulador"; rm -rf $banco*; cd /home/emulador/sql-files; cp main.sql logs.sql $banco; cd /home/emulador/sql-files/item; cp item_db2.sql item_db_re.sql $banco; cd /home/emulador/sql-files/mob; cp mob_db.sql mob_db2.sql mob_db_re.sql mob_skill_db.sql mob_skill_db2.sql mob_skill_db_re.sql $banco; sv preparar ;;
'baixar-brathena') cd /home; sv antigo; rm -rf emulador; mkdir emulador; svn co https://github.com/brAthena/brAthena/trunk emulador; echo "O seu emulador foi baixado com sucesso e se encontra dentro de /home/emulador"; rm -rf $banco*; cd /home/emulador/sql/; cp principal.sql logs.sql $banco; cd /home/emulador/sql/pre-renovacao/; cp pre-renovacao.sql $banco; cd /home/emulador/sql/renovacao/; cp renovacao.sql $banco; sv preparar ;;
'baixar-hercules') cd /home; sv antigo; rm -rf emulador; wget https://pagliahost.com.br/download/hercules.rar; unrar x hercules.rar; cd /home/emulador; chmod 777 sysinfogen.sh; echo "O seu emulador foi baixado com sucesso e se encontra dentro de /home/emulador"; rm -rf $banco*; cd /home/emulador/sql-files; cp item_db2.sql item_db_re.sql item_db.sql logs.sql main.sql mob_db2.sql mob_db_re.sql mob_db.sql mob_skill_db2.sql mob_skill_db_re.sql mob_skill_db.sql $banco; sv preparar ;;
*) echo "Os comandos válidos são:

sv ligar | sv desligar
sv screen | sv retornar
sv compilar | sv preparar
sv backup | sv baixar-emulador

Para utilizar o comando, basta digitar em qualquer tela do seu SSH.

Lembre-se de que seu emulador precisa ser instalado dentro de /home/emulador para o correto funcionamento dos comandos.
"
esac


Ao fazer o comando SV SCREEN, o script abre uma janela do screen com o nome de "ragnarok" (sem aspas), no comando SV DESLIGAR, ele desliga o processo da janela "ragnarok", porém eu não queria que o cliente fizesse SV SCREEN toda vez, eu queria agregar o comando "screen -S ragnarok" dentro do comando SV LIGAR, para que primeiramente ele abra a janela do SCREEN e depois execute os comandos lá dentro.

Alguém pode me ajudar nessa questão?

Grato desde já!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts