[LÖST]Kolla om en process är igång + ett annat problem

Här diskuterar vi skal, kommandon och klassiska linuxverktyg.
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

[LÖST]Kolla om en process är igång + ett annat problem

Inlägg av walle »

Fråga 1
Jag har ett script som ser ut förljande (den heter förövrigt rdiff_tran.sh)

Kod: Markera allt

#!/bin/bash
TARGETS="/backup"
REMOTEHOST=hemligt_ip_till_server.org
REMOTEPORT=1234
REMOTEUSER=user
REMOTEBASE=""
VERBOSITY="5"
TERMINAL_VERBOSITY="3"
SCHEMA="ssh -p ${REMOTEPORT} -l ${REMOTEUSER} -C %s rdiff-backup --server"
VERBOSE="--verbosity ${VERBOSITY} --terminal-verbosity ${TERMINAL_VERBOSITY}"
OPTS="--print-statistics"

LOGGDIRR=/b_logg/
LOGGFILE=${LOGGDIRR}`/bin/date -I`

for target in $TARGETS
do
    echo "rdiff ${target}..."
    filtered_target=`echo $target`

    rdiff-backup --remote-schema "${SCHEMA}" ${VERBOSE} ${OPTS} ${target} ${REMOTEHOST}::${REMOTEBASE}/${filtered_target} > ${LOGGFILE}
done

find ${LOGGDIRR} -atime +40 -exec rm -f {} \;
Vad scriptet gör är kort och gott överför filer från min server hemma till en annan server som jag har på en annan ort. Det jag skulle vilja veta är hur man tar reda på om detta script körs eller ej på en server som inte har ett grafiskt gränssnitt. Är det möjligt?

Fråga 2
När jag ändå håller på så vill jag ha ett annat problem löst. På serven får jag varje dag "systemmail" som ser ut följande:

Kod: Markera allt

>N  5 root@user   Fri Apr 10 06:50   24/933   Cron <root@user> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.da
Vad är det som orsakar detta och hur får jag det att sluta skicka "mail" till systemet?
Senast redigerad av 1 walle, redigerad totalt 11 gånger.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Kolla om en process är igång + ett annat problem

Inlägg av Lars »

Fråga 1
Det finns (åtminstone) två sätt. Det första är att köra pgrep skriptnamn för att detektera skriptet. Det andra är att lägga in touch /var/tmp/blabla i början av skriptet och rm /var/tmp/blabla i slutet. En eventuell fördel med metod två är att om skriptet avslutas oväntat av någon anledning så körs det inte igen förrens du har städat upp. Det kan ju iofs vara en nackdel också.

Fråga 2
Cron kör skripten under /etc/cron.daily varje dag och skickar sedan det där brevet. Men brevet skickas endast om skripten genererar utdata, typiskt sett felmeddelanden. Den funktionaliteten vill du inte ta bort. Däremot ska du läsa innehållet och fundera på vad det är som inte fungerar som det ska, det är det som är finessen ;)
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Kolla om en process är igång + ett annat problem

Inlägg av walle »

Fråga 1
pgrep låter intressant, är det sökvägen till -sh-filen man matar in eller programmet som körs (detta fall rdiff-backup)?

Fråga 2
Problemet är att jag inte använder cron.daly, utan crontab. Sedan har jag kontrollerat många av de system som jag känner till, men de fungerar prima. Om man tar det senaste mailet så ser det ut som följande:

Kod: Markera allt

From root@user Fri Apr 10 06:50:11 2009
Envelope-to: root@user
Delivery-date: Fri, 10 Apr 2009 06:50:11 +0200
From: root@user (Cron Daemon)
To: root@user
Subject: Cron <root@user> test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <LOGNAME=root>
Date: Fri, 10 Apr 2009 06:50:10 +0200

/etc/cron.daily/apt:
No value set for `/system/http_proxy/use_http_proxy'
No value set for `/system/http_proxy/host'
No value set for `/system/http_proxy/port'
Vad jag kan se så handlar det om att den har problem med proxy på något sätt. Problemet är att jag överhuvudtaget inte har något behov av en proxy på något sätt, så att jag har ingen aning om vad orsakar detta.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Kolla om en process är igång + ett annat problem

Inlägg av Lars »

Det är namnet och/eller sökvägen till skriptet du ska använda, rent teoretiskt så kan ju ett helt annat skript köra rdiff-backup samtidigt ;)

Skriptet /etc/cron.daily/apt kör typ "apt-get update" dagligen för att kolla om det finns säkerhetsuppdateringar. Kolla gärna i skriptet, det är lärorikt. Det anropar gconftool för att leta efter eventuella proxyinställningar, men det verkar inte fungera av någon anledning. Börja med att kolla vad getent group admin|cut -d: -f4|cut -d, -f1 ger för svar (det ska vara namnet på den användare vars gconf-inställningar används).
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Kolla om en process är igång + ett annat problem

Inlägg av walle »

Okej, tack!

Av kommandot "getent group admin|cut -d: -f4|cut -d, -f1" får jag bara fram mitt användarnamn som jag har för att logga in på systemet.

Jag kollade i apt-filen också och hittade följande:

Kod: Markera allt

# set the proxy based on the admin users gconf settings
admin_user=$(getent group admin|cut -d: -f4|cut -d, -f1)
if [ -n "$admin_user" ] && [ -x /usr/bin/sudo ] && [ -z "$http_proxy" ] && [ -x /usr/bin/gconftool ]; then
        use=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/use_http_proxy)
        host=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/host)
        port=$(sudo -u "$admin_user" gconftool --get /system/http_proxy/port)
        if [ "$use" = "true" ] && [ -n "$host" ] && [ -n "$port" ]; then
                export http_proxy="http://$host:$port/"
        fi
fi
Egentligen skulle man kunna sätta första if-satsen till FALSE så att scriptet aldrig körs överhuvudtaget. Såvida du inte har en bättre lösning.
Senast redigerad av 1 walle, redigerad totalt 11 gånger.
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Kolla om en process är igång + ett annat problem

Inlägg av Lars »

Jo, precis. Sedan kan du kolla vad gconftool --get /system/http_proxy/use_http_proxy ger för resultat.

Om gconf är trasigt på något sätt kan man köra rm -rf ~/.gconf, vilket naturligtvis RADERAR ALLA gconf-inställningar. Eventuellt kan det fungera att bara köra gconftool --install-schema-file=/usr/share/gconf/schemas/system_http_proxy.schemas. Jag är inte helt hundra på vad kommandot egentligen gör, men det verkar inte skriva över befintliga inställningar. Och dessutom borde det bara påverka proxyinställningar som du ändå inte använder :)
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Kolla om en process är igång + ett annat problem

Inlägg av walle »

Jag fick false, är det bra? ::)
Lars
Inlägg: 6191
Blev medlem: 14 jan 2007, 19:31
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Ort: Stockholm

Re: Kolla om en process är igång + ett annat problem

Inlägg av Lars »

False borde vara bra, men det är konstigt att skriptet inte får samma resultat utan "No value set for..."
SakJur
Inlägg: 1358
Blev medlem: 31 mar 2007, 18:00
OS: Fedora
Utgåva: Vet inte/ingen utgåva passar
Ort: Västerås
Kontakt:

Re: Kolla om en process är igång + ett annat problem

Inlägg av SakJur »

Har du en CD-tray borde du kunna lägga till || eject efter varje kritisk rad, då skjuter den ut CD-trayen varje gång nånting går fel... :D
Jag är inte tyvärr inte särskilt aktiv längre.
sakjur@launchpad
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Kolla om en process är igång + ett annat problem

Inlägg av walle »

SakJur skrev:Har du en CD-tray borde du kunna lägga till || eject efter varje kritisk rad, då skjuter den ut CD-trayen varje gång nånting går fel... :D
Intressant idé, men hur i h******e ska det lösa mitt problem? Jag är inte direkt glömsk och då leder det till bara ett irritationsmoment.

Hur som helst, tar till med min ful-metoden nu eftersom att jag förmodligen inte kommer ha användning av proxy på serven. Då åter står frågan, hur fixar man så att det blir alltid FALSE i ett shell-if-sats?
Användarvisningsbild
Konservburk
Inlägg: 5919
Blev medlem: 07 apr 2007, 22:28

Re: Kolla om en process är igång + ett annat problem

Inlägg av Konservburk »

walle skrev:hur fixar man så att det blir alltid FALSE i ett shell-if-sats?
Jag skulle kommenterat bort hela if-satsen. Men om du verkligen vill tvinga villkoret att alltid bli falskt så kan du stoppa in ; false precis innan ; then

Kod: Markera allt

if "en massa villkor" ; false ; then
Användarvisningsbild
walle
Inlägg: 152
Blev medlem: 10 apr 2007, 03:28
OS: Ubuntu
Utgåva: 24.04 Noble Numbat LTS
Ort: Göteborg

Re: Kolla om en process är igång + ett annat problem

Inlägg av walle »

Det är sant, men då lär man sig ju inget. ;) Tack för all hjälp!
Skriv svar

Återgå till "Terminalforum"