Jól tudom-e hogy annak a neve kerül előre aki kiadta a who parancsot?
Amennyiben így van akkor szükség volna az eredmény beemelésére a scriptbe.
Jelenleg így tudom meg, hogy ki adta ki a parancsot:
#!/bin/bash
who_file=`mktemp -p /tmp`
who | awk -vRS='\r' '{print $1}' >${who_file}
Nos ennek az awk-nak az eredményét vagyis a felhasználó nevét kellene beimportálnom pont ebbe a scriptbe, amely éppen lekérdezi. Azon belül is természetesen egy változóba.
Lehetséges ez?
Az is lehet hogy nem is kell fájlba importálni?
Ami biztos hogy a source már a script elején foglalt. Esetleg többször is meglehet adni?
- 919 megtekintés
Hozzászólások
Ha csak az aktualis juzer kell akkor a whoami segíthet.
- A hozzászóláshoz be kell jelentkezni
A coreutils-ban lévő whoami parancs visszaadja az őt futtató felhasználó usernevét.
- A hozzászóláshoz be kell jelentkezni
Ha jól értelek, neked inkább a
whoami
parancs kell.
--
Nagyimami
- A hozzászóláshoz be kell jelentkezni
Baromira érhetetlen mit akarsz, de ha esetleg ezt, akkor rendes rendszereken az USER, vagy a LOGNAME nevű változó már pont a számodra szükséges értéket tartalmazza, azaz simán $USER vagy $LOGNAME. De ha nem, a futtató nevét inkább az id parancs kimenetéből szedjed, mint a who-ból (és nem, nem a lekérdező lesz a who első sorában)
- A hozzászóláshoz be kell jelentkezni
Ugye ha az ember neki áll scriptelni, könnyen elkalandozik. Olvas sok mindent, aztán kész a baj.
Igazatok van. A woami az tényleg jobb. Nem is jutottt hirtelen az eszembe. De mint kiderült, nem is kell.
A cron manipulálásához gondoltam hogy kellhet a felhasználó neve. De nem kell. Mert máshol meg mondták hogy kell.
A manual is ezt írja: crontab -u user file.
A lényeg hogy az alábbi módon frankón működik.
Kérdés hogy biztonságos-e?
# létrehozunk egy ideiglenes fájlt
already_crontab=`mktemp -p /tmp`
# kiexportáljuk a crontab tartalmát az ideiglenes fájlba.
crontab -l > ${already_crontab}
# hozzáfűzzük az alábbi sort, ami ugye bármi lehet - scriptből kifolyólag. Ez most nem lényeges.
echo "55 23 2 9 * lspci" >> ${already_crontab}
# új crontabot hozunk létre.
crontab ${already_crontab}
# letöröljük az ideiglenes fájlt
rm -f ${already_crontab}
Utóirat: Még kezdő vagyok a scriptelgetés területén. Ez a $user tök jó.
- A hozzászóláshoz be kell jelentkezni
Csak pusztán kiváncsiságból: miért kell az lspci-t cron-nal futtatni?
- A hozzászóláshoz be kell jelentkezni
Ez csak egy példa volt. Természtesen nem ez fog benne futni.
S nem is így direktben lesz megadva az érték. De nem akartam az egész 453 soros interaktív videómagnó scriptet bemásolni ide.
De ha szeretnéd...
- A hozzászóláshoz be kell jelentkezni
env EDITOR=/bin/ed crontab -e << itt_a_vege
$a
55 23 2 9 * lspci
.
w
q
itt_a_vege
man env ed crontab sh
- A hozzászóláshoz be kell jelentkezni