Plik który uruchamia boty skrypt w bashu

Zombie
linux
Glupikocz
Glupikocz

Siema mam pytanie ponieważ chce zrobić plik który bedzie mi uruchamiał boty i jak to zrobić bo aktualnie mam

#!/bin/sh echo "Boty muzyczne zostały włączone" screen -dmS bot /home/musicbot mono TS3AudioBot.exe

a wyskakuje mi

/bin/sh^M: bad interpreter: No such file or directory

I łot i must mejk nał?

Glupikocz
Glupikocz

Dobra juz wiem wystarczy zrobić

sed -i -e 's/\r$//' nazwapliku.sh
Glupikocz
Glupikocz

Ale mam inny problem teraz

./boty.sh: 7: ./boty.sh: /home/musicbot: Permission denied

Timo
Timo Moderator forum.lvlup.pro

chmod 744 /home/musicbot chown nazwa_uzytkownika_na_ktorym_chcesz_uzyc_skryptu /home/musicbot

Glupikocz
Glupikocz

rozwiązałem to bo pomyślałem że moze dodanie z przodu sudo to załatwi i tak dokładnie było ale teraz mam że

sudo: /home/musicbot: command not found

Kod wygląda tak

#!/bin/sh

ZMIENNA="Boty"

start() { echo "$ZMIENNA zostały włączone" sudo /home/musicbot mono TS3AudioBot.exe } stop() { echo "$ZMIENNA zostały wyłączone" pkill screen }

case "$1" in start) start ;; stop) stop ;; restart) stop start ;; *) echo "Usage: ./boty.sh [ start | stop | restart ]" exit 1 esac

exit 0

anon40709621
anon40709621

Glupikocz:

sudo: /home/musicbot: command not found

Wpisałeś sudo i lokalizacje pliku, a przecież taka komenda nie istnieje. Proponuje zrealizować rozwiązanie

Timo:

chown nazwa_uzytkownika_na_ktorym_chcesz_uzyc_skryptu /home/musicbot

Jak już bardzo chcesz dodać sudo to do komendy, którą podał Timo :)

Glupikocz
Glupikocz

Nie działa chown nadałem

chmod 744 /home/musicbot

i

chown root /home/musicbot

Glupikocz
Glupikocz

Dobra jestem uspośledzony wystarczyło dać cd o najłatwiejszym nie pomyślałem ale tak to jest jak za coś bierze sie 1 raz

Lumpiasty
Lumpiasty Stały bywalec

Sorry, że się czepiam, ale tak się porządnie serwerów nie stawia. Od trzymania plików tak samoopakowanych programów mamy folder /opt, trzymania danych jest /srv, a /home jest na dane użytkowników. Pliki serwisów trzymamy w /etc/systemd/system (a potem odpalamy przez systemctl start/stop/status nazwa.

Więc oto, przejdźmy do konkretów:

  1. Wrzucamy rozpakowane pliki serwera do /opt/ts3audiobot (jako root)

  2. Ustawiamy uprawnienia chmod -R 644 /opt/ts3audiobot chown -R root:root /opt/ts3audiobot chmod 755 /opt/ts3audiobot/TS3Audiobot.exe

  3. Tworzymy użytkownika sudo useradd -m -d /srv/ts3audiobot -U ts3audiobot

  4. Przełączamy się na nowo utworzonego użytkownika sudo su ts3audiobot

  5. Przechodzimy do folderu domowego cd ~

  6. Odpalamy bota po raz pierwszy mono /opt/ts3audiobot/TS3Audiobot.exe i ustawiamy o co pyta. Zamykamy go.

  7. Wylogowujemy się ctrl+d

  8. Tworzymy plik serwisu sudo nano /etc/systemd/system/ts3audiobot.service [details="Treść pliku"] [Unit] Description=Audio bot for TS3 Servers After=network.target

     [Service]
     ExecStart=/usr/bin/mono /opt/ts3audiobot/TS3AudioBot.exe
     WorkingDirectory=/srv/ts3audiobot
     User=ts3audiobot
     Group=ts3audiobot

    [/details]

  9. Przeładowujemy configi systemd sudo systemctl daemon-reload

  10. Startujemy bota systemctl start ts3audiobot

Od tego momentu mamy

  • Sensowne zarządzanie botem przez systemctl jak każdy inny cywilizowany serwis.
  • Pliki konfiguracyjne oddzielone od plików uruchamiających.

Podstawowe komendy: systemctl start ts3audiobot - start bota systemctl stop ts3audiobot - stop bota systemctl status ts3audiobot - status bota systemctl enable ts3audiobot - włączenie uruchamiania na starcie systemu systemctl disable ts3audiobot - wyłączeniu uruchamiania na starcie systemu journalctl -u ts3audiobot - log bota A całą konfigurację wykonujemy w /srv/ts3audiobot

Ps. Heh, wyszedł z tego pełnoprawny poradnik, ale jak już zaczałem pisać to skończyłem, może będzie dla potomnych.

LinGruby
LinGruby Pionier

To tak jeszcze dodam że wszelkiego typu własne skrypty można a nawet należy wrzucać do

/usr/local/bin 

a coby dane skrypty miały startować razem z systemem można wykorzystać do tego rc.local wspominałem o tym już gdzieś na forum

https://lvlup.rok.ovh/t/instalacja-serwera-teamspeak3-na-vps-dedyku/106/#5

wstawiamy ścieżkę do skryptu...

Lumpiasty
Lumpiasty Stały bywalec

LinGruby:

można wykorzystać do tego rc.local

Warto wspomnieć, że jesteśmy w erze systemd (no, przynajmniej na Linuxie), a rc.local to tylko opcjonalny dodatek do zachowania kompatybilności z programami, które systemd nie widziały. Chyba lepiej pokazać jak się to poprawnie dzisiaj robi, nie uczyć nowicjuszy jak było kiedyś.

LinGruby
LinGruby Pionier

Lumpiasty:

Warto wspomnieć, że jesteśmy w erze systemd

tak zgadza się tylko nie każdy korzysta z systemd ;-)

Lumpiasty
Lumpiasty Stały bywalec

Może i nie każdy, ale większość, a już w szczególności osoby, które nie wiedzą co mają w środku swojego systemu, tym bardziej, że wszystkie większe dystrybucje z niego korzystają. A niestety to jest przytłaczająca większość "Adminów MC".

Nie miałem zamiaru obrazić nikogo mówiąc "Admin MC", nazywam tak po prostu osoby, którym ma serwer działać, nie ważne czy dobrze, tylko po prostu.

dobra, bo to już schodzi na offtop

Glupikocz
Glupikocz

Ogólnie to dziękuje każdemu za pomoc chciałem wiedziec jedno a z tego dowiedziałem się bardzo dużo. Dziękuje jeszcze raz

system
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.