Dit is de opdracht atposix die kan worden uitgevoerd in de gratis hostingprovider van OnWorks met behulp van een van onze meerdere gratis online werkstations zoals Ubuntu Online, Fedora Online, Windows online emulator of MAC OS online emulator
PROGRAMMA:
NAAM
at — voer opdrachten op een later tijdstip uit
KORTE INHOUD
at [m] [f filet] [q wachtrijnaam] t tijd_arg
at [m] [f filet] [q wachtrijnaam] tijdspecificatie...
bij −r bij_job_id...
bij −l −q wachtrijnaam
bij −l [bij_job_id...]
PRODUCTBESCHRIJVING
De at hulpprogramma leest opdrachten uit standaardinvoer en groepeert ze samen als een Bij-
baan, die op een later tijdstip zal worden uitgevoerd.
De at-job zal worden uitgevoerd in een aparte aanroep van de shell, uitgevoerd in een aparte
procesgroep zonder controlerende terminal, behalve dat de omgevingsvariabelen actueel zijn
werkmap, masker voor het maken van bestanden en andere door de implementatie gedefinieerde uitvoeringstijd
attributen die van kracht zijn wanneer de at nut wordt uitgevoerd, zal worden behouden en gebruikt wanneer de
op het werk wordt uitgevoerd.
Wanneer de bij-taak is ingediend, de bij_job_id en geplande tijd zal worden geschreven
standaardfout. De bij_job_id is een identificatie die een string zal zijn die uitsluitend bestaat uit
alfanumerieke tekens en de karakter. De bij_job_id wordt toegewezen door de
systeem wanneer de taak zodanig is gepland dat een bepaalde taak op unieke wijze wordt geïdentificeerd.
Gebruikersmelding en de verwerking van de standaarduitvoer en standaardfout van de taak zijn dat wel
beschreven onder de m optie.
Gebruikers mogen het gebruiken at als hun naam in het bestand voorkomt bij.toestaan dat
bevindt zich in een door de implementatie gedefinieerde directory. Als dat bestand niet bestaat, wordt het bestand
bij.weigeren, die zich in een door de implementatie gedefinieerde map bevindt, moet worden gecontroleerd op
bepalen of de gebruiker de toegang wordt ontzegd at. Als geen van beide bestanden bestaat, wordt alleen a
proces met de juiste rechten mag een taak indienen. Als alleen bij.weigeren
bestaat en leeg is, is globaal gebruik toegestaan. De bij.toestaan en bij.weigeren bestanden zullen
bestaan uit één gebruikersnaam per regel.
OPTIES
De at hulpprogramma zal voldoen aan het Base Definitions-volume van POSIX.1‐2008, sectie 12.2,
utility Syntaxis Richtlijnen.
De volgende opties worden ondersteund:
f filet Geef in plaats daarvan de padnaam op van een bestand dat moet worden gebruikt als de bron van de at-job
van standaard invoer.
l (De letter ell.) Rapporteer alle taken die zijn gepland voor de aanroepende gebruiker, indien nee
bij_job_id operanden zijn gespecificeerd. Als bij_job_ids zijn gespecificeerd, alleen rapporteren
informatie voor deze banen. De uitvoer moet naar de standaarduitvoer worden geschreven.
m Stuur een e-mail naar de aanroepende gebruiker nadat de at-job is uitgevoerd, en kondig deze aan
voltooiing. De standaarduitvoer en de standaardfout die door de at-job worden geproduceerd, zijn
ook naar de gebruiker gemaild, tenzij elders doorverwezen. Post wordt zelfs verzonden
als de taak geen uitvoer oplevert.
If m niet wordt gebruikt, zijn de standaarduitvoer en de standaardfout van de taak hetzelfde
per post aan de gebruiker verstrekt, tenzij deze naar elders worden doorgestuurd; als
Als er geen dergelijke uitvoer kan worden geleverd, hoeft de implementatie de gebruiker hiervan niet op de hoogte te stellen
van de voltooiing van de klus.
q wachtrijnaam
Geef op in welke wachtrij een taak moet worden gepland voor verzending. Bij gebruik met de l
optie, beperkt u de zoekopdracht tot die specifieke wachtrij. Standaard is dit at-jobs
gepland in de wachtrij a. Wachtrij daarentegen b is gereserveerd voor batchtaken;
zien partij. De betekenissen van alle andere wachtrijnaams zijn implementatiegedefinieerd. Als
q wordt gespecificeerd samen met een van de t tijd_arg or tijdspecificatie argumenten, de
resultaten zijn niet gespecificeerd.
r Verwijder de taken met de opgegeven bij_job_id operanden die voorheen waren
gepland door de at utility.
t tijd_arg
Dien de taak in die moet worden uitgevoerd op het tijdstip dat is opgegeven door de tijd optie-argument,
waarvan de aanvraag ervoor moet zorgen dat deze het formaat heeft zoals gespecificeerd door de t
tijd utility.
OPERANDEN
De volgende operanden worden ondersteund:
bij_job_id De naam gerapporteerd door een eerdere aanroep van de at nut op het moment dat de baan wordt uitgevoerd
is gepland.
tijdspecificatie Verzend de taak die moet worden uitgevoerd op de opgegeven datum en tijd. Alle tijdspecificatie
operanden worden geïnterpreteerd alsof ze gescheiden zijn door karakters en
aaneengeschakeld, en zal worden geparseerd zoals beschreven in de grammatica aan het einde hiervan
sectie. De datum en tijd worden geïnterpreteerd als zijnde in de tijdzone van de
gebruiker (zoals bepaald door de TZ variabele), tenzij een tijdzonenaam wordt weergegeven als onderdeel
of tijdHieronder.
In de POSIX-landinstelling beschrijft het volgende de drie delen van de tijd
specificatiereeks. Alle waarden uit de LC_TIME categorieën in de POSIX
locale wordt op een hoofdlettergevoelige manier herkend.
tijd De tijd kan worden opgegeven als één, twee of vier cijfers. Eén cijfer en
getallen van twee cijfers worden geacht uren te zijn; viercijferige getallen zijn
uren en minuten. De tijd kan ook worden opgegeven als twee
getallen gescheiden door een , betekenis uur:minuut. Een AM/PM
indicatie (een van de waarden uit de AM PM trefwoorden in de LC_TIME
locale categorie) kan de tijd volgen; anders een kloktijd van 24 uur
zal begrepen worden. Een tijdzonenaam kan ook volgen om verder te gaan
kwalificeer de tijd. De acceptabele tijdzonenamen zijn implementatie-
gedefinieerd, behalve dat ze niet hoofdlettergevoelig zijn en de string UTC
wordt ondersteund om aan te geven dat de tijd zich in gecoördineerde universele tijd bevindt.
In de POSIX-landinstelling is de tijd veld kan ook een van de volgende zijn
Munten:
middernacht Geeft de tijd aan 12:00 am (00:00).
middag Geeft de tijd aan: 12:00 uur.
nu Geeft de huidige dag en tijd aan. aanroepen at <nu> zal
een at-job indienen voor mogelijk onmiddellijke uitvoering (dat
is, alleen onderhevig aan niet-gespecificeerde planningsvertragingen).
gegevens een optionele gegevens kan worden opgegeven als een maandnaam (een van de
waarden uit de Maan or abmon trefwoorden in de LC_TIME locale categorie)
gevolgd door een dagnummer (en eventueel jaarnummer voorafgegaan door een
komma), of een dag van de week (een van de waarden uit de dag or abdag
trefwoorden in de LC_TIME lokale categorie). In de POSIX-locale twee
bijzondere dagen worden erkend:
vandaag Geeft de huidige dag aan.
morgen Geeft de dag aan die volgt op de huidige dag.
Zo nee gegevens is gegeven, vandaag wordt aangenomen als de opgegeven tijd is
groter dan de huidige tijd, en morgen wordt aangenomen als dit het geval is
minder. Als de opgegeven maand korter is dan de huidige maand (en geen jaar
wordt gegeven), wordt uitgegaan van volgend jaar.
aanwas De optionele aanwas is een getal voorafgegaan door een
('+') en voorzien van een van de volgende toevoegingen: minuten, uur, dagen,
weken, maandenof jaar. (De enkelvoudige vormen worden ook aanvaard.)
Het trefwoord volgende komt overeen met een ophoognummer van +1. Voor
De volgende zijn bijvoorbeeld equivalente opdrachten:
at 2:XNUMX + 1 week
at 2:XNUMX volgende week
De volgende grammatica beschrijft het precieze formaat van tijdspecificatie in de POSIX-landinstelling. De
algemene conventies voor deze stijl van grammatica worden beschreven in sectie 1.3, Grammatica
conventies. Deze formele syntaxis heeft voorrang op de voorgaande tekstsyntaxis
beschrijving. De langst mogelijke token of delimiter zal op een bepaald punt worden herkend.
Bij gebruik in een tijdspecificatie, zal witruimte ook tokens afbakenen.
%teken hr24klok_hr_min
%teken uur24klok_uur
/*
An hr24klok_hr_min is a een, twee, or viercijferige nummer. A een getal
or twee cijfers aantal vormt an uur24klok_uur. An uur24klok_uur
mei be elke of the single cijfers [0,9], or mei be verdubbelen cijfers, variërend
van [00,23]. If an hr24klok_hr_min is a viercijferige nummer, the
eerste twee cijfers zal be a geldig uur24klok_uur, en the laatste twee
vertegenwoordigen the aantal of notulen, van [00,59].
*/
%token wandklok_hr_min
%token wandklok_uur
/*
Een wallclock_hr_min is een getal van één, twee of vier cijfers.
Een getal van één of twee cijfers vormt een wandklokuur.
Een wandklok_uur kan bestaan uit één van de enkele cijfers [1,9], of kan
dubbele cijfers zijn, variërend van [01,12]. Als een wallclock_hr_min
een getal van vier cijfers is, zijn de eerste twee cijfers geldig
wallclock_hour, terwijl de laatste twee het aantal vertegenwoordigen
minuten, vanaf [00,59].
*/
%tokenminuut
/*
Een minuut is een getal van één of twee cijfers waarvan de waarde [0,9] kan zijn
of [00,59].
*/
%token dag_nummer
/*
Een dagnummer is een getal in het bereik dat geschikt is voor de specifieke situatie
maand en jaar gespecificeerd door respectievelijk maandnaam en jaarnummer.
Als er geen jaarnummer wordt opgegeven, wordt aangenomen dat het huidige jaar het gegeven is
datum en tijd zijn later dit jaar. Als er geen jaarnummer is opgegeven en
de datum en tijd zijn dit jaar al gevallen en de maand is
niet de huidige maand, volgend jaar is het veronderstelde jaar.
*/
%token jaar_nummer
/*
Een jaarnummer is een viercijferig getal dat het jaar AD vertegenwoordigt, in
waarop de at_job moet worden uitgevoerd.
*/
%token inc_nummer
/*
Het inc_number is het aantal keren dat de volgende stap wordt gezet
periode moet worden toegevoegd aan de opgegeven datum en tijd.
*/
%token tijdzonenaam
/*
De naam van een optioneel tijdzone-achtervoegsel voor het tijdveld, in een
implementatiegedefinieerd formaat.
*/
%token maandnaam
/*
Een van de waarden van de trefwoorden mon of abmon in de LC_TIME
lokale categorie.
*/
%token dag_van_week
/*
Een van de waarden uit het zoekwoord day of abday in de LC_TIME
lokale categorie.
*/
%token am_pm
/*
Een van de waarden uit het trefwoord am_pm in de landinstelling LC_TIME
categorie.
*/
%starttijdspec
%%
tijdspec: tijd
| tijd datum
| tijdsverhoging
| tijd datum verhoging
| nuspec
;
nowspec: "nu"
| "nu"-verhoging
;
tijd: hr24clock_hr_min
| hr24clock_hr_min tijdzonenaam
| hr24clock_hour ":" minuut
| hr24clock_hour phoreminuut tijdzonenaam
| wandklok_hr_min am_pm
| wallclock_hr_min am_pm tijdzonenaam
| wallclock_hour : minuut am_pm
| wallclock_hour jpg minuut am_pm tijdzone_naam
| "middag"
| "middernacht"
;
datum: maandnaam dagnummer
| maand_naam dag_nummer "," jaar_nummer
| dag van de week
| "Vandaag"
| "morgen"
;
toename: "+" inc_number inc_period
| "volgende" inc_periode
;
inc_period : "minuut" | "minuten"
| "uur" | "uren"
| "dag" | "dagen"
| "week" | "weken"
| "maand" | "maanden"
| "jaar" | "jaren"
;
STDIN
De standaardinvoer zal een tekstbestand zijn dat bestaat uit commando's die acceptabel zijn voor de shell
commandotaal beschreven in Hoofdstuk 2, Shell commando Taal. De standaardinvoer zal
alleen gebruiken als nee f filet optie is opgegeven.
INVOER FILES
Zie de STDIN-sectie.
De tekstbestanden bij.toestaan en bij.weigeren, die zich bevinden in een door de implementatie gedefinieerd
directory, bevat nul of meer gebruikersnamen, één per regel, van gebruikers die,
respectievelijk geautoriseerde of geweigerde toegang tot de at en partij nutsbedrijven.
MILIEU VARIABELEN
De volgende omgevingsvariabelen zijn van invloed op de uitvoering van: at:
TAAL Geef een standaardwaarde op voor de internationaliseringsvariabelen die niet zijn ingesteld of
nul. (Zie het volume Basisdefinities van POSIX.1‐2008, sectie 8.2,
internationalisering Variabelen voor de prioriteit van internationalisering
variabelen die worden gebruikt om de waarden van landinstellingen te bepalen.)
LC_ALL Indien ingesteld op een niet-lege tekenreekswaarde, overschrijf dan de waarden van alle andere
internationaliseringsvariabelen.
LC_CTYPE Bepaal de landinstelling voor de interpretatie van reeksen bytes tekstgegevens
als tekens (bijvoorbeeld single-byte in plaats van multi-byte tekens in
argumenten en invoerbestanden).
LC_MESSAGES
Bepaal de landinstelling die moet worden gebruikt om het formaat en de inhoud van te beïnvloeden
diagnostische berichten geschreven naar standaardfout en informatieve berichten geschreven
naar standaarduitvoer.
NLSPAT Bepaal de locatie van berichtencatalogi voor de verwerking van: LC_MESSAGES.
LC_TIME Bepaal het formaat en de inhoud voor geschreven en geaccepteerde datum- en tijdreeksen
by at.
SHELL Bepaal een naam van een commando-interpreter die moet worden gebruikt om de at-job aan te roepen. Als
de variabele is niet ingesteld of null, sh zal worden gebruikt. Als het is ingesteld op een andere waarde
dan een naam voor sh, zal de implementatie een van de volgende dingen doen: use that
schelp; gebruik sh; gebruik de login-shell uit de gebruikersdatabase; of een van de
voorafgaande vergezeld van een waarschuwingsdiagnose waarover werd gekozen.
TZ Bepaal de tijdzone. De opdracht wordt op dat moment ter uitvoering aangeboden
gespecificeerd door tijdspecificatie or t tijd ten opzichte van de tijdzone die is opgegeven door de TZ
variabel. Als tijdspecificatie een tijdzone specificeert, heeft deze voorrang TZ. Indien tijdspecificatie
specificeert geen tijdzone en TZ is niet ingesteld of nul, een niet-gespecificeerde standaardwaarde
tijdzone wordt gebruikt.
ASYNCHROON EVENEMENTEN
Standaard.
STDOUT
Wanneer standaardinvoer een terminal is, worden prompts van niet-gespecificeerd formaat voor elke regel van de gebruiker
invoer beschreven in de STDIN-sectie kan worden geschreven naar standaarduitvoer.
In de POSIX-landinstellingen wordt voor elke taak het volgende naar de standaarduitvoer geschreven
wanneer er banen worden vermeld als reactie op de l optie:
"%s\t%s\n", bij_job_id,gegevens>
met de meeste gegevens is qua formaat gelijk aan de uitvoer van:
gegevens +"%een %b %e %T %Y"
De geschreven datum en tijd worden aangepast zodat ze verschijnen in de tijdzone van de
gebruiker (zoals bepaald door de TZ variabel).
STDERR
In de POSIX-landinstellingen wordt het volgende naar de standaardfout geschreven wanneer een taak is uitgevoerd
succesvol ingediend:
"functie %s at %s\n", bij_job_id,gegevens>
met de meeste gegevens heeft hetzelfde formaat als beschreven in de STDOUT-sectie. Noch dit, noch
waarschuwingsberichten met betrekking tot de selectie van de commando-interpreter moeten in aanmerking worden genomen
een diagnose die de afsluitstatus verandert.
Diagnostische berichten, indien aanwezig, zullen naar standaardfout worden geschreven.
OUTPUT FILES
Geen.
UITGEBREID PRODUCTBESCHRIJVING
Geen.
EXIT STATUS
De volgende exit-waarden worden geretourneerd:
0 De at hulpprogramma heeft met succes een baan of banen ingediend, verwijderd of vermeld.
>0 Er is een fout opgetreden.
GEVOLGEN OF FOUTEN
De taak mag niet worden gepland, verwijderd of vermeld.
De volgend secties zijn informatief.
TOEPASSING GEBRUIK
Het formaat van de at De hier getoonde opdrachtregel is alleen gegarandeerd voor de POSIX-landinstelling.
Andere culturen kunnen echter worden ondersteund met substantieel verschillende interfaces
implementaties worden aangemoedigd om vergelijkbare functionaliteitsniveaus te bieden.
Omdat de opdrachten in een aparte shell-aanroep worden uitgevoerd, in een aparte procesgroep
zonder controleterminal, open bestandsbeschrijvingen, traps en prioriteit geërfd van
de aanroepende omgeving gaat verloren.
Sommige implementaties staan vervanging van verschillende shells niet toe SHELL. Systeem V
systemen hebben bijvoorbeeld de login-shellwaarde voor de gebruiker gebruikt / Etc / passwd. naar
betrouwbaar een andere opdrachtinterpreter selecteert, moet de gebruiker deze opnemen als onderdeel van de
schrift, zoals:
$ op 1800
mijnshell mijnscript
EOT
baan ... at ...
$
Voorbeelden
1. Deze reeks kan op een terminal worden gebruikt:
at m 0730 morgen
sorteren < filet >outfile
EOT
2. Deze reeks, die het omleiden van de standaardfout naar een pijp demonstreert, is nuttig in a
opdrachtprocedure (de volgorde van uitvoeromleidingsspecificaties is significant):
at nu + 1 uur <<!
diff file1 file2 2> & 1 >outfile | mailx mijn groep
!
3. Om een klus zelf te laten verzetten, at kan worden aangeroepen vanuit de baan. Voor
Dit dagelijkse verwerkingsscript heet bijvoorbeeld mijn dagelijkse loopt elke dag (hoewel crontab
is een geschikter voertuig voor dergelijk werk):
# mijn dagelijkse loopt elk dag
dagelijks verwerking
op nu morgen < mijn.daily
4. De afstand tussen de drie delen van de POSIX-landinstelling tijdspecificatie is vrij flexibel als
zolang er geen onduidelijkheden zijn. Voorbeelden van verschillende tijden en operandpresentatie
omvatten:
at 0815am jan 24
at 8 :15amjan24
at nu "+ 1 dag"
at 5 pm Vrijdag
at '17
utc+
30 minuten'
BEWEEGREDENEN
De at hulpprogramma leest uit standaardinvoer de opdrachten die op een later tijdstip moeten worden uitgevoerd. Het
kan nuttig zijn om standaarduitvoer en standaardfouten binnen de opgegeven grenzen om te leiden
commando's.
De t tijd optie werd toegevoegd als een nieuwe mogelijkheid om een geïnternationaliseerde manier van werken te ondersteunen
het specificeren van een tijdstip voor uitvoering van de ingediende taak.
Vroege voorstellen voegden een 'jobnaam'-concept toe als een manier om ingediende banennamen te geven
betekenisvol zijn voor de gebruiker die ze indient. Het historische, systeemgespecificeerde bij_job_id
geeft geen indicatie van wat de baan is. Bij nader inzien werd besloten dat de
Het voordeel hiervan was de verandering in de historische interface niet waard. De at functionaliteit is
handig in eenvoudige omgevingen, maar in grote of complexe situaties kan de functionaliteit afnemen
geleverd door de Batch Services-optie is geschikter.
De q optie is historisch gezien een ongedocumenteerde optie geweest, die voornamelijk werd gebruikt door de partij
utility.
Het systeem V m Er is een optie toegevoegd om een methode te bieden om gebruikers te informeren dat er een at-job is
had voltooid. Anders worden gebruikers alleen geïnformeerd wanneer uitvoer naar standaardfout of
standaarduitvoer worden niet omgeleid.
Het gedrag van at <nu> werd in een vroeg voorstel gewijzigd van niet-gespecificeerd naar
het indienen van een taak voor mogelijk onmiddellijke uitvoering. Historische BSD at implementaties
ondersteunen dit. Historische System V-implementaties geven in dat geval een fout, maar een verandering
naar de System V-versies mogen geen gevolgen hebben voor achterwaartse compatibiliteit.
Op BSD-gebaseerde systemen, a u gebruiker optie heeft mensen met de juiste rechten toegestaan
toegang krijgen tot het werk van andere gebruikers. Omdat dit in de eerste plaats een functie voor systeembeheer is
en niet universeel geïmplementeerd is, is het weggelaten. Op dezelfde manier is er een specificatie voor
het uitvoerformaat voor een gebruiker met de juiste rechten die de wachtrijen van andere gebruikers bekijkt
is weggelaten.
De f filet optie van System V wordt gebruikt in plaats van de BSD-methode om de laatste te gebruiken
operand als padnaam. De BSD-methode is dubbelzinnig: doet:
at 1200 vrijdag
hetzelfde betekenen als er een bestand is met de naam vrijdag in de huidige map?
De bij_job_id bestaat uit een beperkte karakterset in de historische praktijk, en dat is ook zo
hier verplicht om systemen ongeldig te maken die zouden kunnen proberen tekens te gebruiken waarvoor shell nodig is
citeert of die niet gemakkelijk door shell-scripts kunnen worden geparseerd.
De at hulpprogramma varieert tussen System V- en BSD-systemen in de manier waarop tijdzones worden gebruikt. Op
Systeem V-systemen, de TZ De variabele heeft invloed op de tijden voor indiening bij de opdracht en de tijden
weergegeven voor de gebruiker. Op BSD-systemen, TZ wordt geen rekening mee gehouden. Het BSD-gedrag is
gemakkelijk te realiseren met de huidige specificatie. Als de gebruiker de tijdzone wil hebben
standaard aan die van het systeem voldoen, hoeven ze alleen maar de code uit te geven at commando onmiddellijk
na een uitschakel- of nultoewijzing aan TZ. Bijvoorbeeld:
TZ= at middag ...
geeft het gewenste BSD-resultaat.
Hoewel de jacc-achtige grammatica gespecificeerd in de sectie OPERANDS is lexicaal ondubbelzinnig
met betrekking tot de cijferreeksen zou waarschijnlijk een lexicale analysator worden geschreven om te kijken
voor en retourneer cijferreeksen in die gevallen. De parser kan dan controleren of het cijfer
geretourneerde tekenreeks is geldig dag_nummer, jaar_nummer, enzovoort, op basis van de context.
TOEKOMST ROUTEBESCHRIJVING
Geen.
Gebruik atposix online met behulp van onworks.net-services