[Pardus-kullanicilari] cron ve network ile profil değiştirme

Aydın Demirel aydindem at gmail.com
1 Eki 2010 Cum 10:58:45 EEST


nw_changer.py dosyasına çalıştırma izni verdiniz mi?

ben verdiğiniz script'i kendi bilgisayarımda saat 11'de çalışacak şekilde
ayarladım ve o hatayı vermedi..

01 Ekim 2010 10:39 tarihinde Sencer HAMARAT <sencerhamarat at gmail.com> yazdı:

> İyi günler,
>
> Sunucudan yedek almak üzere bir python scripti yazdım. yazdığım script şu
> şekilde:
>
> cat nw_changer.py
>
> #-------------------------------------
> #!/usr/bin/python
> # -*- coding: utf-8 -*-
>
> import sys
> import os
> import getpass
> from datetime import date
>
> userName=getpass.getuser()
> today = date.today().isoformat()
> localPath = "~/DB_Backup/"
> serverAddress="***.com"
> serverPath = "/home/***/"
> backupFile = "db_%s_0000.backup" % today
>
> stop_network="network down"
> start_network="network up"
> stop_network_now=""
> start_network_now=""
> network_profiles={'kablo':'Eth_Kablo', 'adsl':'Eth_ADSL'}
> default_conn="adsl"
> connections=os.popen("network connections").read()
>
> def change_network(connection=None):
>        if connection:
>                if connection=="kablo":
>                        print "Baglanti kablo'ya aktariliyor\n"
>                        stop_netwok_now="%s %s"%(stop_network,
> network_profiles['adsl'])
>                        start_network_now="%s %s"%(start_network,
> network_profiles['kablo'])
>                else:
>                        print "Baglanti adsl'ye aktariliyor\n"
>                        stop_netwok_now="%s %s"%(stop_network,
> network_profiles['kablo'])
>                        start_network_now="%s %s"%(start_network,
> network_profiles['adsl'])
>
>                os.system(stop_network_now)
>                os.system(start_network_now)
>        else:
>                print "Baglanti degistirilmeye gerek duyulmadi\n"
>
> print "Internet baglantisi kontrol ediliyor\n"
> if "[\x1b[32;01mX\x1b[0m]  \x1b[36;01mEth_ADSL\x1b[0m" in connections:
>        print "Baglanti ADSL uzerindeymis\nDegistirilecek\n"
>        change_network(connection="kablo")
> else: print "Istenilen baglanti profili zaten aktif, baglanti
> degistirilmeyecek.\n"
>
> backup_progress="scp %s@%s:%s%s %s" %
> (userName,serverAddress,serverPath,backupFile,localPath)
> print "Uzak sunucudaki yedegin kopyalanma islemine baslandi\n"
> os.system(backup_progress)
> print "Uzak sunucudaki yedegin kopyalanma islemi tamamlandi\nBaglanti eski
> haline getiriliyor\n"
> change_network(connection=default_conn)
> print "Baglanti %s uzerine alindi\nProgram Sonu\n\n"%default_conn
> sys.exit()
> #-------------------------------------
>
> Bu dosyayı crontab -e ile cron işi olarak şu şekilde kendi kullanıcı
> crontab'ıma ekledim:
>
> 00 01 * * * /home/sencer/devel/tools/nw_changer.py >>
> /home/sencer/DB_Backup/nw_changer.log 2>&1
>
> ./nw_changer.py dosyasını elle çalıştırdığımda hiçbir sorun çıkarmadan
> bağlantıyı değiştirip işini yerine getirip bağlantıyı eski haline getiriyor.
> Aksi gibi crontab scripti çalıştırdığında log dosyasında bağlantıyı
> değiştirirken hep hata basmış. Bu yüzden bağlantı değiştirilemediği için
> yedek alamamış makine. Hata çıktısı aşağıdaki gibidir:
>
>
> polkit-grant-helper: given auth type (1 -> no) is bogus
> Attempting to obtain authorization for error.
> Failed to obtain authorization for error.
> Bringing up Eth_ADSL (eth1)
> Traceback (most recent call last):
>  File "/bin/network", line 402, in <module>
>    sys.exit(main())
>  File "/bin/network", line 394, in main
>    return stateProfile(command)
>  File "/bin/network", line 369, in stateProfile
>    link.Network.Link[package].setState(profile, state)
>  File "/usr/lib/pardus/comar/__init__.py", line 127, in call
>    raise dbus.DBusException, exception
> dbus.exceptions.DBusException: tr.org.pardus.comar.Comar.PolicyKit: error
>
> Connection to ***.***.***.*** timed out while waiting to read
>
>
>
> Aynı şekilde bağlantıyı değiştiremediği gibi bağlantıyı geri almak için
> çalıştırılan komut için de aynı hatayı vermiş olması söz konusu.
>
> polkit-grant-helper: given auth type (1 -> no) is bogus
> Attempting to obtain authorization for error.
> Failed to obtain authorization for error.
> Bringing up Eth_Kablo (eth1)
> Traceback (most recent call last):
>  File "/bin/network", line 402, in <module>
>    sys.exit(main())
>  File "/bin/network", line 394, in main
>    return stateProfile(command)
>  File "/bin/network", line 369, in stateProfile
>    link.Network.Link[package].setState(profile, state)
>  File "/usr/lib/pardus/comar/__init__.py", line 127, in call
>    raise dbus.DBusException, exception
> dbus.exceptions.DBusException: tr.org.pardus.comar.Comar.PolicyKit: error
>
>
> Acaba bunun sebebi nedir diye düşünüyorum ama aklıma birşey gelmiyor.
> Sonuçta kendi kullanıcımın crontab'ına kendi kullanıcımla yarattığım
> dosyayı, cron'un kendim kullanıcım adına çalıştırmabilmesi için eklendiğini
> varsayıyorum. Acaba bu düşüncemde mi bir yanlışlık var? Kullanıcı ile ilgili
> bir sorun olabilir mi?
>
> iyi çalışmalar
>
>
>
> --
> Opera'nın e-posta istemcisi ile gönderildi: http://www.opera.com/mail
> _______________________________________________
> Pardus-kullanicilari e-posta listesi
> Listeden çıkmak için
> http://liste.pardus.org.tr/mailman/listinfo/pardus-kullanicilari adresini
> kullanın.
> Listeye iletmek istediğiniz soruları  Pardus-kullanicilari at pardus.org.tre-posta adresine gönderin.
> Liste mesajlarında arama yapmak için http://liste.pardus.org.tr/arama web
> sayfasına gidin.
>



-- 
*Aydın Demirel
---------------------
Atılım Üniversitesi - Sistem Yöneticisi
Tel: (0312) - 586 88 16
(ACCP - Open Source)
(CCNA)

Web: http://www.demirel.web.tr*
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: <http://liste.pardus.org.tr/pardus-kullanicilari/attachments/20101001/cb0f8bd4/attachment.htm>


Pardus-kullanicilari mesaj listesiyle ilgili daha fazla bilgi