Cron nevie spraviť screenshot

Sekcia: Aplikácie & Desktop 10.12.2010 | 00:43
Avatar Michal Malík Archlinux | Debian  Používateľ
Zdravím Vás,

screen.sh sa nachádza v /data/bash/
- je sprístupnený obyčajnému uživateľovi

v screen.sh sa nachádza tento kód:
#!/bin/bash

scrot /data/screenshots/file.png

Má vykonávať screenovanie obrazovky.

Za normálneho uživateľa mám v crontab-e toto:

* * * * * /data/bash/screen.sh > /dev/null

Všetko by šlo fajn, keby mi Cron neposlal e-mail so znením:
giblib error: Can't open X display. It *is* running, yeah ?
- normálny uživateľ má prístup do priečinku /data
- normálny uživateľ má povolenie spúšťať screen.sh
- obsah screen.sh nie je identický, v skutočnosti sa to neukladá do file.png, ale do súboru, ktorý nesie dátum a aktuálny čas

Chcel by som Vás poprosiť o radu, poprípade riešenie na tento menší problém, veľmi pekne ďakujem.

Príjemný zvyšok večera.
Everything you can imagine is real.
    • Re: Cron nevie spraviť screenshot 10.12.2010 | 01:02
      Avatar peter s.   Používateľ
      skus pridať do screen.sh toto (pred samotný príkaz):

      DISPLAY=:0

      A kľudne si to vyskušaj z inej tty (Ctrl+Alt+F[1-6])
      • Re: Cron nevie spraviť screenshot 10.12.2010 | 01:43
        Avatar Michal Malík Archlinux | Debian  Používateľ
        Pred ten scrot som pridal:

        DISPLAY=:0

        Výsledok stále rovnaký.
        Everything you can imagine is real.
        • Re: Cron nevie spraviť screenshot 10.12.2010 | 01:50
          Avatar Michal Malík Archlinux | Debian  Používateľ
          DISPLAY=:0 scrot file.png
          Dostanem znova e-mail od Cron-u
          No protocol specified
          giblib error: Can't open X display. It *is* running, yeah ?

          Ale zvláštne je to, že keď spustím samostatne príkazom "sh /data/bash/screen.sh" - funguje to bezchybne.
          Everything you can imagine is real.
          • Re: Cron nevie spraviť screenshot 10.12.2010 | 12:37
            Peter S.   Návštevník
            ešte môže byť že na tvoj Xserver nemá právo pristupovať iný užívateľ, zvykne sa to riešiť príkazom 'xhost +localhost',
            skus sa s tým pohrať...
          • Re: Cron nevie spraviť screenshot 10.12.2010 | 13:31
            Avatar m4jkl   Používateľ
            ked sa prepnes na textovu konzolu (napr. ctrl+alt+f2), prihlasis sa a skusit spustit ten skript
            DISPLAY=:0 ./cesta/k/skriptu.sh
            tak to urobi co? podla toho co pises by to nemalo fungovat.
            • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:04
              Avatar Michal Malík Archlinux | Debian  Používateľ
              Ani nefunguje.
              Everything you can imagine is real.
              • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:09
                Avatar m4jkl   Používateľ
                takze to vypise "giblib error: Can't open X display. It *is* running, yeah ?" ?
                • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:16
                  Avatar Michal Malík Archlinux | Debian  Používateľ
                  Áno.
                  Everything you can imagine is real.
        • Re: Cron nevie spraviť screenshot 10.12.2010 | 14:32
          WlaSaTy   Návštevník
          Do skriptu daj pred ten program:

          export DISPLAY=:0.0

          • Re: Cron nevie spraviť screenshot 10.12.2010 | 15:57
            Avatar Michal Malík Archlinux | Debian  Používateľ
            Myslím, že lepšie by bolo ukázať vám ten celý script:

            #!/bin/bash

            CAS=`date +%H_%M_%S`
            DATUM=`date +%d_%m_%Y`
            MENO=$CAS-$DATUM.png

            DIR=/data/screenshots/

            if [ ! -d $DIR/$DATUM ]
            then
            cd $DIR
            mkdir $DATUM
            cd $DIR/$DATUM
            export DISPLAY=:0.0
            scrot $MENO
            else
            cd $DIR/$DATUM
            export DISPLAY=:0.0
            scrot $MENO
            fi


            WlaSaTy, takto si to myslel ? Alebo inak ?
            Everything you can imagine is real.
            • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:08
              Avatar m4jkl   Používateľ
              to export tam staci iba raz. funguje ten skript, ak ho spustis z textovej konzoly? ctrl+alt+f2
              • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:10
                Avatar Michal Malík Archlinux | Debian  Používateľ
                Nie, nefunguje. Píše to:

                No protocol specified
                giblib error: Can't open X display. It *is* running, yeah ?
                Everything you can imagine is real.
                • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:19
                  Avatar m4jkl   Používateľ
                  skus znovu ctrl+alt+f2, potom
                  xhost +localhost
                  DISPLAY=:0 ./cesta/k/skriptu.sh

                  ?
                  • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:27
                    Avatar Michal Malík Archlinux | Debian  Používateľ
                    xhost +localhost
                    xhost: unable to open display ""
                    Everything you can imagine is real.
                    • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:31
                      Avatar m4jkl   Používateľ
                      ok, znovu:

                      export DISPLAY=:0
                      xhost +localhost
                      ./cesta/k/skriptu.sh
                      • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:36
                        Avatar Michal Malík Archlinux | Debian  Používateľ
                        xhost: unable to open open diplsay ":0"
                        Everything you can imagine is real.
                        • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:43
                          Avatar m4jkl   Používateľ
                          ps aux | grep [X]org
                          ?
                          • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:49
                            Avatar Michal Malík Archlinux | Debian  Používateľ
                            root 1179 2.4 1.7 25416 18160 tty7 Ss+ 09:41 8:32 /usr/bin/Xorg :0 -br -verbose -audit 0 -novtswitch -auth /var/run/gdm3/auth-for-Debian-gdm-TvlX5w/database -nolisten tcp vt7
                            PS: Debian Squeeze
                            Everything you can imagine is real.
                            • Re: Cron nevie spraviť screenshot 10.12.2010 | 17:05
                              WlaSaTy   Návštevník
                              No, ale ten sa Ti startuje ako sluzba cez Display Manager-a.

                              Som zvedavy ci nejaky s screenshoterov bude ochotny pracovat s autorizacnym suborom /var/run/gdm3/auth-for-Debian-gdm-TvlX5w/database ak tam nebude niekto prihlaseny.
                              • Re: Cron nevie spraviť screenshot 10.12.2010 | 17:10
                                Avatar Michal Malík Archlinux | Debian  Používateľ
                                Tiež pravda. Každopádne vám veľmi pekne ďakujem za ochotu. =) Pekný deň.
                                Everything you can imagine is real.
                        • Re: Cron nevie spraviť screenshot 10.12.2010 | 22:43
                          Avatar peter s.   Používateľ
                          skus spustiť xhost z "vnutra" xservera ako uživateľ ktorý je na nom prihlásený.
                          A je nezmysel pchať ho do skritpu. To sa spušta len raz a system si to pamätá..
                          • Re: Cron nevie spraviť screenshot 10.12.2010 | 23:42
                            WlaSaTy   Návštevník
                            Ono je vôbec nezmysel znižovať bezpečnosť povolením pripojenia na grafiku pre hocikoho (alebo pre užívateľa či z určitého stroja) len kôli možnosti sledovania ich aktivít. Pokiaľ niekto takýmto spôsobom degraduje bezpečnosť, tak nebude možné rozlíšiť kto si vtedy pozeral napríklad to porno alebo vykonával iné spoločensky neakceptovateľné aktivity. Samotné povolenie pripojenia totižto umožňuje nielen čítať orazovku, ale na ňu aj zapisovať. A tak isto aj odchytávať klávesnicu a zasielať písmenká aj s myšou speť. A to je z pohľadu riešenia niečo ako keby sme vybúrali steny na kúpeľni aby sme videli kto po sebe umyje vaňu. Strecha môže ostať, keby náhodou bolo pršalo.

                            Zrovna toto je pokus o riešenie ktoré má zaplátať zlú výchovu a nulovú dôveru na úkor paarnoickej zvedavosti hraničiacej s fetišizmom.
                            • Re: Cron nevie spraviť screenshot 11.12.2010 | 00:55
                              Avatar Michal Malík Archlinux | Debian  Používateľ
                              Ono, pravdupovediac, tento nápad so screenshotovaním obrazovky, vznikol len náhodne a prevažne z nudy. Myslel som si, že to bude pár minútova záležitosť .. spraviť script a spúšťať ho každú minútu každej hodiny každého dňa .. bla bla bla... Nečakal som, že Cron s týmto nápadom bude mať takýto problém.
                              Everything you can imagine is real.
                              • Re: Cron nevie spraviť screenshot 11.12.2010 | 01:09
                                WlaSaTy   Návštevník
                                Cron s tým nemá ani najmenší problém, tak isto ani iné nástroje. Problémom je intolerancia voči bezpečnostnej politike systému.

                                Keby si to púšťal pod svojím užívateľom, tak Ti to bude fungovať v relatívnej pohode. Inak by nefungovali tie všelijaké kúpeľnové kukátka ako napríklad VNC.
            • Re: Cron nevie spraviť screenshot 10.12.2010 | 16:37
              WlaSaTy   Návštevník
              Nie. Myslel som to nejako takto:
              #!/bin/bash
              
              CAS=`date +%H_%M_%S`
              DATUM=`date +%d_%m_%Y`
              MENO=$CAS-$DATUM.png
              
              DIR=/data/screenshots/
              
              if [ ! -d $DIR/$DATUM ]
              then
              	cd $DIR
              	mkdir $DATUM
              fi 
              
              xwd -root -display :0.0 | xwdtopnm | pnmtopng > $DIR/$DATUM/$MENO
              

              Akurat ze to bude fungovat koli autorizacii LEN ked je prihlaseny uzivatel pod ktorym to bezi. Teoreticky sa da odpalit bezpecnost cez ten xhost, ale v praxi to dopadne tak ze si navzajom budu ludia potom zobrazovat nejake nechutne porno. Len mi nebude jasne ze komu potom vynadas.

              PS.: neskusal som, pisem z pameti.