Plik który uruchamia boty skrypt w bashu

Glupikocz | 2019-03-21 19:24:38 UTC | #1

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 | 2019-03-21 19:18:03 UTC | #2

Dobra juz wiem wystarczy zrobić

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

Glupikocz | 2019-03-21 19:22:32 UTC | #3

Ale mam inny problem teraz

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


Timo | 2019-03-21 19:25:04 UTC | #4

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


Glupikocz | 2019-03-21 19:26:09 UTC | #5

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 | 2019-03-21 19:39:11 UTC | #6

[quote=”Glupikocz, post:5, topic:10495”]
sudo: /home/musicbot: command not found
[/quote]

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

[quote=”Timo, post:4, topic:10495”]
chown nazwauzytkownikanaktorymchceszuzycskryptu /home/musicbot
[/quote]

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


Glupikocz | 2019-03-21 19:40:52 UTC | #7

Nie działa chown nadałem

chmod 744 /home/musicbot

i

chown root /home/musicbot


Glupikocz | 2019-03-21 19:55:40 UTC | #8

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 | 2019-03-21 20:20:04 UTC | #9

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
2. Tworzymy użytkownika sudo useradd -m -d /srv/ts3audiobot -U ts3audiobot
3. Przełączamy się na nowo utworzonego użytkownika sudo su ts3audiobot
4. Przechodzimy do folderu domowego cd ~
4. Odpalamy bota po raz pierwszy mono /opt/ts3audiobot/TS3Audiobot.exe i ustawiamy o co pyta. Zamykamy go.
5. Wylogowujemy się ctrl+d
6. 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]
  1. Przeładowujemy configi systemd sudo systemctl daemon-reload
  2. 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 | 2019-03-22 13:55:04 UTC | #10

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://forum.lvlup.pro/t/instalacja-serwera-teamspeak3-na-vps-dedyku/106/5

wstawiamy ścieżkę do skryptu…


Lumpiasty | 2019-03-22 17:20:02 UTC | #11

[quote=”LinGruby, post:10, topic:10495”]
można wykorzystać do tego rc.local
[/quote]

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 | 2019-03-22 18:25:40 UTC | #12

[quote=”Lumpiasty, post:11, topic:10495”]
Warto wspomnieć, że jesteśmy w erze systemd
[/quote]

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


Lumpiasty | 2019-03-22 18:38:05 UTC | #13

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 | 2019-03-22 20:52:38 UTC | #14

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 | 2019-04-23 20:52:40 UTC | #15

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