{"id":272,"date":"2008-04-09T09:21:03","date_gmt":"2008-04-09T07:21:03","guid":{"rendered":"http:\/\/self.mestrona.net\/blog\/2008\/at\/"},"modified":"2008-04-17T10:56:57","modified_gmt":"2008-04-17T08:56:57","slug":"at","status":"publish","type":"post","link":"https:\/\/s3lf.de\/blog\/2008\/at\/","title":{"rendered":"at"},"content":{"rendered":"<p><strong>at<\/strong> ist ein toller Befehl.<\/p>\n<p><strong>Cron<\/strong> ist unter Linux daf&#252;r zust&#228;ndig, aufgaben &#8211; meist wiederkehrende &#8211; zu bestimmten Zeitpunkten auszuf&#252;hren. <strong>At<\/strong> arbeitet mit cron zusammen und dient dazu,  quasi AdHoc cron-Jobs anzulegen.<\/p>\n<p>Will man z.B. heute Abend um acht Uhr automatisch seinen Computer herunterfahren lassen, k&#246;nnte man (als root)  folgendes eingeben:<\/p>\n<p><code>\/root\/myfolder# at 8pm<br \/>\nwarning: commands will be executed using \/bin\/sh<br \/>\nat&gt; halt<\/code><\/p>\n<p><em>(nun Strg+D dr&#252;cken)<\/em><\/p>\n<p>Da durch wird unter \/var\/spool\/cron\/atjobs eine Datei erzeugt die z.B. folgenden Inhalt hat:<\/p>\n<p><code>#!\/bin\/sh<br \/>\n# atrun uid=0 gid=1003<br \/>\n# mail root 0<br \/>\numask 22<br \/>\nUSER=root; export USER<br \/>\nMAIL=\/var\/mail\/root; export MAIL<br \/>\nPATH=\/usr\/local\/sbin:\/usr\/local\/bin:\/usr\/sbin:\/usr\/bin:\/sbin:\/bin; export PATH<br \/>\nPWD=\/var\/spool\/cron\/atjobs; export PWD<br \/>\nLANG=en_US.UTF-8; export LANG<br \/>\nPS1=\\\\h:\\\\w\\\\\\$\\ ; export PS1<br \/>\nSHLVL=1; export SHLVL<br \/>\nHOME=\/root; export HOME<br \/>\nLOGNAME=root; export LOGNAME<br \/>\nOLDPWD=\/root; export OLDPWD<br \/>\ncd \/root\/myfolder || {<br \/>\necho 'Execution directory inaccessible' &gt;&amp;2<br \/>\nexit 1<br \/>\n}<br \/>\nhalt<\/code><\/p>\n<p>Wie man sieht, werden auch aktuelle Umgebungsvariablen beim anlegen des at-Jobs sowie das aktuelle Verzeichnis gespeichert und bei der verz&#246;gerten Ausf&#252;hrung des Befehls wiederhergestellt.<\/p>\n<p>Die Angabe des Ausf&#252;hrungszeit f&#252;r at ist so ausgelegt, dass man sie relativ leicht erlernen kann. Wenn sie auch zuerst etwas gew&#246;hnungsbed&#252;rftig ist.<\/p>\n<p>Konkrete Anwendung: Da hier die Internetverbindung sehr langsam ist, sind Downloads nur nachts m&#246;glich.<\/p>\n<p>Dazu habe ich zuerst mit &#8222;at 8pm&#8220; den Befehl wget eingerichtet um den Download abends zu starten. Au&#223;erdem habe ich mit &#8222;at 8 am + 1 day&#8220; den Befehl &#8222;killall wget&#8220; geplant, um bei Betriebsbeginn alle Downloads zu beenden, falls der Download &#252;ber Nacht nicht beendet werden konnte.<\/p>\n<p><strong>UPDATE<\/strong> (danke an Bernd) : Obwohl der Pfad \/var\/spool\/cron\/atjobs dannach aussieht, als w&#252;rde at cron-Jobs anlegen, so ist doch der Daemon &#8222;atd&#8220; f&#252;r die Ausf&#252;hrung zust&#228;ndig. Hatte ich &#252;bersehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>at ist ein toller Befehl. Cron ist unter Linux daf&#252;r zust&#228;ndig, aufgaben &#8211; meist wiederkehrende &#8211; zu bestimmten Zeitpunkten auszuf&#252;hren. At arbeitet mit cron zusammen und dient dazu, quasi AdHoc cron-Jobs anzulegen. Will man z.B. heute Abend um acht Uhr automatisch seinen Computer herunterfahren lassen, k&#246;nnte man (als root) folgendes eingeben: \/root\/myfolder# at 8pm warning: [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-272","post","type-post","status-publish","format-standard","hentry","category-linux"],"_links":{"self":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/272","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/comments?post=272"}],"version-history":[{"count":0,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/posts\/272\/revisions"}],"wp:attachment":[{"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/media?parent=272"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/categories?post=272"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/s3lf.de\/blog\/wp-json\/wp\/v2\/tags?post=272"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}