Új hozzászólás Aktív témák
-
_kovi_
aktív tag
válasz
bambano #2797 üzenetére
Ezt hogy érted?
"megkérdezhetem, hogy miért csinálsz fork bombát?"1. az sftp tud rekurzívan másolni. tehát összeállítod egy ideiglenes könyvtárban azt, amit fel kell másolni, és egy sftp utasítással felmásolod.
Igen, ezt tudom, s elég egyszerű is mert * -al mindent felvisz. De az a probléma, hogy a felmásolás után át kell nevezni a fájlt, levenni a végéből egy utótagot. Több fájlt egyszerre pedig nem lehet az sftp-n átnevezni, egyszerűen nem tudja. a rename, mv csak 1 fájlra működik. Ezért van for-ban, hogy amint feltölti, azt az egy fájlt átnevezi amit felmásolt.2. az sftp tud teljes névvel másolni. tehát azt kell csinálni, hogy:
put /helyikonyvtar/helyifajlnev /tavolikonyvtar/tavolifajlnev
Igen tudom, de a ciklusban az EOF miatt belehalt. Ezért kellett az echo put ...
3. az sftp, mint minden rendes ftp kliens, tud többszörös fájlmásolást, lásd mput.
Ennek utána kell néznem, nem ismerem. De az átnevezési feltétel miatt itt is gondok lennének.
4, az sftp tud batch fájlból parancsokat beolvasni.
Ebben igazad van. -
bambano
titán
megkérdezhetem, hogy miért csinálsz fork bombát?
for ciklusban sftp???amiket használni lehet:
1. az sftp tud rekurzívan másolni. tehát összeállítod egy ideiglenes könyvtárban azt, amit fel kell másolni, és egy sftp utasítással felmásolod.
2. az sftp tud teljes névvel másolni. tehát azt kell csinálni, hogy:
put /helyikonyvtar/helyifajlnev /tavolikonyvtar/tavolifajlnev
3. az sftp, mint minden rendes ftp kliens, tud többszörös fájlmásolást, lásd mput.
4, az sftp tud batch fájlból parancsokat beolvasni.tehát a normális megoldás például lehet ez:
(
cd tavolikonyvtar
for i in *; do
ujfilename=kitalalom az új fájlnevet
echo put $i $ujfilename
done )| sftp .... -
_kovi_
aktív tag
Sziasztok!
Egy olyan problémám van, hogy egy sftp-re kell feltöltenem fájlokat és ott vissza kell neveznem az összeset. Jó sokat googliztam, teszteltem, sajnos az sftp mint olyan nem támogatja a tömeges átnevezést. Így egy for loopban gondoltam megadni hogy amit feltöltene az átnevezem az sftp-n. Mert a sima rename az működik.
Feltétel, hogy csak az sftp-n lehet visszanevezni.
Picit irányba tudnátok állítani mert elakadtam. -
bambano
titán
az egyik lehetséges és egyszerű megoldás, hogy a mentő szkript futtatásának napját nézed, és aszerint csinálsz plusz másolatokat.
valahogy így:
dayofweek=$(date '+%u')
[ $dayofweek -eq 7 ] && cp maimentes hetimentestarolo
ugyanígy lehet dayofmonth-ot csinálni meg dayofyeart (%j). -
cigam
titán
válasz
f_sanyee #2783 üzenetére
Megosztanád velem?
Eddig olyat találtam, hogy
find /ut/vonal/ ! -name '*01.tar' -mtime +7 -exec rm {} \;
Elméletileg ez nem törli a hónap első napját, és megtartja az utolsó hét napot. Igazából nem ragaszkodom a heti mentések megtartásához, legfeljeb nem az utolsó 7 napot, hanem az utolsó 30 napot tartom meg, és minden hónap 1-jét. -
cigam
titán
Eljutottam odáig, hogy szépen összeszedi az aktuális mentéshez tartozó fájlokat, és becsomagolja egy tar fájlba úgy, hogy ÉV/HÓNAP/mentésdátuma.tar szerkezetbe készíti a .tar fájlt, majd ha ez sikerült akkor törli a feltöltött fájlokat.
Ezúton is köszönöm az okításomat!Mivel egy hónap ~500GB helyet foglal, arra gondoltam, hogy a .tar fájlokból törölje ami egy hétnél régebbi, de maradjon meg egy heti, egy havi és egy évi mentés.
Így nem kellene kézzel "gyomlálni", de ha kell akkor megvan az utolsó hét nap, és minden hét, hónap, év 1. mentése.Létezik ilyen trükkös keresés/törlés?
-
cigam
titán
válasz
fatpingvin #2777 üzenetére
Persze. A .tar fájlban benne van az összes tegnapi dátumú fájl.
-
bambano
titán
alapvetően azt kellene megoldanod, hogy amikor a mentés történik, az dátum szerint szétválogatva történjen. én erre írtam, hogy tar, mert nem emlékszem, hogy mit írtál, mi a kliens.
ezért kellene inkább azt csinálnod, hogy minden nap csinálsz egy dátum nevű könyvtárat, és raksz rá egy szimbolikus linket. és akkor minden eleve szétválogatva kerül fel a nasra. -
cigam
titán
Mindenkinek nagyon köszönöm a segítséget, ötleteket! Végül ez lett belőle:
#!/bin/bash
tegnap=$(date --date="yesterday" +'%Y-%m-%d')
mentesdir=$(date --date="yesterday" +'/volume1/homes/Tamas/backup/%Y/%m/%d')
[ -d $mentesdir ] || mkdir -p $mentesdir
find /volume1/homes/Tamas/backup/archivum -maxdepth 1 -mtime -2 -mtime 1 -type f -exec tar -cf $mentesdir/archivum$tegnap.tar {} +;
find /volume1/homes/Tamas/backup/www -maxdepth 1 -mtime -2 -mtime 1 -type f -exec tar -cf $mentesdir/www$tegnap.tar {} +;
Időzítve minden nap lefut egy Synology NAS-on.
A tegnapi nap szűrésével kapcsolatban vannak fenntartásaim, de ha beválik a akkor beleteszek egy törlést is a végére. Az && itt működhet?-exec tar -cf $mentesdir/www$tegnap.tar {} && rm {}+;
-
Headless
őstag
Az eleje csak ellenőrzi, hogy létezik-e a mappa már, vagy fájl azon a néven
De igazából csak egy hibaüzenetet hagysz ki vele, amit az mkdir adna. Sok értelmét nem látom, de igen az is opció.
Amit én nem írtam, a maxdepth kapcsoló az annyit csinál, hogy maximum 1 mélységben keres fájlokat. És ebben az esetben értelmesnek láttam.
tarral kapcsolatban, most nem válaszolnék nem nagyon használok command line tar-t. De a find -exec tar így biztos nem lesz jó
-
cigam
titán
válasz
bambano #2769 üzenetére
Tyűha! Ez is felvetett pár kérdést.
pl. a [ -d $mentesdir ] || mkdir -p $mentesdir sor eleje mit csinál?Vagyis elég Headless megoldásában az utolsó sort módosítani?
find "$dir" -maxdepth 1 -mtime -1 -type f -exec tar cf $previousdaydir/mentfile.tar {}Miért vannak jobb helyen egy tar fájlban, mint egy könyvtárban?
Plusz ha sikerült beszuszakolni a fájlokat a tar-ba, attól még ottmaradnak az eredeti fájlok is. Azokat hogyan törlöm? -
bambano
titán
teljesen rossz elképzelés.
nem mozgatunk, a végső helyére tesszük.
ha a könyvtárnévbe bele tudod tenni a dátumot, akkor a mentési fájlnévbe is.tehát nyugodtan írhatod, hogy:
mentesdir= $(date '/home/mentes/%Y/%m/%d')
[ -d $mentesdir ] || mkdir -p $mentesdir
tar cf $mentesdir/mentfile.tar blablamásik hsz-re: a {} körül hiba escapelni, mert akkor egy olyan fájlnévből, amiben van szóköz, több argumentum lesz és az első elé meg az utolsó mögé hozzáfűz egy idézőjelet.
a -exec mv-vel meg az a baj, hogy minden fájlra forkol egy date-t is, ami felesleges.
a -exec mv $(date)-tel az is a baj, hogy az lc szerinti dátumban szokott lenni szóköz, attól az mv fejreáll.
szerk: ha pedig ez nem felel meg, akkor egy cron jobból minden éjfélkor csináld meg a napi mappát és tegyél rá egy linket, ami állandó nevű.
-
cigam
titán
Szuper! Köszönöm mindkettőtöknek!
Eze trükkös mv {} pontosan mit jelent? Hol tudnék ennek utánnaolvasni picit? -
Headless
őstag
Findnak van egy kapcsolója méghozzá a -type f így csak fájlokat fogja keresni valamint átmásolni meg akkor az exec kapcsolóval röviden
dir=/home/mentes
previousdaydir=$dir/$(date --date="yesterday")
mkdir -p "$previousdaydir"
find "$dir" -maxdepth 1 -mtime -1 -type f -exec mv \"{}\" \"$previousdaydir/\" \;
Nem teszteltem de nagyjából ennyi, elnézést ha elírtam valamit.
-
cigam
titán
Minden nap egy konkrét mappába kerül a napi mentés feltöltésre. Egy idő után rendkívül sok fájl lesz a mappában. A könnyeb szelektálás érdekében azt szeretném elérni, hogy a feltöltés dátuma alapján mozgassa át a fájlokat a megfelelő dátumú mappákba.
Amikor lefut a script, akkor a tegnap feltöltött fájlokat mozgassa át a 2022-12-29 mappába, és így tovább.
Az megvan hogy a tegnapi könyvtára létrehozom:mkdir /home/mentes/$(date --date="yesterday")
De a find /home/mentes/ -mtime -1 találatait hogyan mozgatom bele a könyvtáraba? De csak a fálokat, mert ott a tegnapi dátumú mappa is. -
válasz
gery2123 #2760 üzenetére
Egy fájlba ezt dobd bele (IP-t írj bele, meg a wakeup commandot)
! ping -c 1 192.168.0.1 &> /dev/null && WAKEUP_COMMAND_IDE
Majd a crontabban időzítsd be 5 percenkénti futásra, valahogy így:
*/5 * * * * /azen/scriptem.sh
---De lehet így is működik, majd a többiek megerősítik vagy cáfolják:
*/5 * * * * ! ping -c 1 192.168.0.1 &> /dev/null && WAKEUP_COMMAND_IDE
-
gery2123
őstag
Sziasztok!
szeretnek egy bash scriptet a rpi-re ami 5 percenként ellenőrzi a szervert Ping alapján és ha nem elérhető akkor küld egy Wake on LAN parancsot .
ebben tudtok segíteni! Köszönöm szépen! -
-
Blasius
tag
válasz
bambano #2754 üzenetére
Valóban! Ha először futtatom a screent és utána adom ki az ncat parancsot (már a screenen belül) akkor működik a fájlba írás. Belső hálózaton legalábbis. Ha a külső internetről próbálom akkor nem működik. További furcsaság hogy ha egyszer a külső internetről megpróbáltam, utána már a belső hálózatról sem fog működni. Az udp port át van irányítva rendesen. Más portok is át vannak irányítva például ftnek. Igaz az tcp, de az ftp működik rendesen, elérhető a külső internetről. Valami miatt úgy tűnik hogy az ncat nem szereti az átirányított portról fogadni a csomagot.
-
Jester01
veterán
Na de mivel jobb a screen mint ha egyszerűen háttérben futtatod? Csak fölösleges erőforrás pazarlás.
-
bambano
titán
válasz
Blasius #2751 üzenetére
mert itt a >11.txt átirányítás a screen kimenetét irányítja át, nem a netcatét.
próbáld meg azt, hogy elindítod a screent, belépsz, és utána ott indítod el a netcatet a fenti paranccsal.
vagy próbáld meg azt, hogy a netcates parancsot beleírod egy parancsfájlba az átirányítással együtt, és azt indítod el screenben. -
Blasius
tag
válasz
fatpingvin #2750 üzenetére
az openwrt /etc/passwd fájlban a sor vége /bin/ash;
-
Blasius
tag
válasz
bambano #2749 üzenetére
A routerre csatlakoztattam egy egy USBs meghajtót, amit írni talán nem olyan nagy para mint magát a flasht. Esetleg a /tmp -be is írhatok és óránként/naponta lementem.
A szerkezet ami küldi az adatot az udp-t tudja. rsyslog-rol még nem is hallottam, ennek utána kell hogy nézzek.
Az openwrt shell valóban nem teljesen ok udp-re. A következő parancs rendes linuxon (Arch a gépen) megy jól viszont Opelwrt-n nem működik:
echo "hello word" > /dev/udp/192.168.0.123/6786 -
Blasius
tag
válasz
dabadab #2748 üzenetére
Ha futtatom az ncatet screenben:
screen ncat -4 -l -u -p6786 --recv-only --append-output > 11.txt
akkor a 11.txt megjelenik, de a mérete 0 byte.
A text file helyét megpróbáltam abszolút is megadni (/mnt/wd/.../11.txt). De ugyanarra az eredményre jutottam .Ha megjelenítem a screent (screen -r) akkor kiírva látom amit küldtem.
Amúgy a screen nem oda ment alapból a melyik könyvtárban futtatom? -
bambano
titán
válasz
Blasius #2747 üzenetére
emlékeim szerint az openwrt-ben gyárilag nem bash van, és ha fel is rakod rá, akkor is olyan verzió, ami nem kezeli a tcp és az udp csomagokat.
a screen pedig lehet, hogy nem állít be minden környezeti változót.én azon agyalnék, hogy nincs-e jobb megoldás, mint az udp-t menteni.
esetleg nem udp-n hanem rsyslog protokollal logolni...hozzátenném még, hogyha folyamatosan írod a fájlrendszert, az lehet, hogy gyorsan kikészíti a routerben a flash-t. szóval csak olyan helyre írj, ami ramban van.
-
Blasius
tag
Sziasztok,
Egy linux bash scriptet akarok írni, ami egy porton beérkező UDP csomagokat elmenti, a csomag beérkezési idejével együtt. Pythonban ezt meg lehetne biztos csinálni, de én azért akarok bash scriptet mert egy routeren (openwrt) akarnám futtatni, aminek az erőforrásai azért szerényebbek. Néhány (kb 10) bájtot kellene elmenteni másodpercenként plussz time epochot.
Ncattal a csomag elmentése már végülis megy:
ncat -4 -l -u -p6786 --recv-only --append-output > 11.txt
Furcsaság hogyha screennel futtatom akkor nem akar menteni fájlba.
A time epoch pedig:
date +%s
Persze az is lehet hogy az ncat ezt a feladatod már magától meg tudja csinálni. De vajon hogyan démonizálom? (Mert ugye screenben nem akart írni fájlba)
Üdv -
Munkahelyen találtam egy scriptet, ami tartalmaz egy ilyen részt:
if [ "$VALAMI" -gt "1" ]; then
echo akarmi
fi
exec 2>&1
if [ "$VALAMI2" -gt "1" ]; then
echo akarmi2
fi
Középen annak az exec-nek van bármi értelme?
-
vargalex
félisten
Érdekes, mert mennie kell a sed-es megoldásnak:
[gavarga@gavarga-5500 test]$ echo "Áuu, hosszú: ú" > forras.txt
[gavarga@gavarga-5500 test]$ sed 's/./\0\n/g' forras.txt
Á
u
u
,
h
o
s
s
z
ú
:
ú
A file is biztosan UTF-8-as? Mit mond nálad a
file forras.txt
(vagy esetedben, ha file a forrás állomány neve a
file file
) parancs?Ezt kellene, hogy visszaadja:
[gavarga@gavarga-5500 test]$ file forras.txt
forras.txt: Unicode text, UTF-8 text
Szerk: egyáltalán GNU sed-et használsz? Nem valami embedded rendszeren lévőbusybox
-os sed-et? -
prucam
tag
válasz
dabadab #2732 üzenetére
# locale
LANG=hu_HU.UTF-8
LANGUAGE=
LC_CTYPE="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_PAPER="hu_HU.UTF-8"
LC_NAME="hu_HU.UTF-8"
LC_ADDRESS="hu_HU.UTF-8"
LC_TELEPHONE="hu_HU.UTF-8"
LC_MEASUREMENT="hu_HU.UTF-8"
LC_IDENTIFICATION="hu_HU.UTF-8"
LC_ALL= -
dabadab
titán
Ez a GNU cut bugja: a -c-t pont úgy kezeli, mint a -b-t, vagyis annak ellenére, hogy elvileg kellene neki, valójában egyáltalán nem támogatja a multibyte karaktereket.
Szerencsére a bash maga is tud vagdosni stringeket és az rendesen csinálja:#! /bin/bash
for i in {0..49}
do
cat file | while read ; do
echo ${REPLY:$i:1}
done
done
exit
-
prucam
tag
#! /bin/sh
for i in {1..50}
do
cat file | cut -c $i >> file_2
done
exitVan a fenti scriptem. Minden karaktert egy másik file, új sorába ír.
Ha angol a szöveg, akkor jó. De a magyarnál valami kódolási hiba van.pl. ez a sor:
(1999) X-kölykökez lesz az eredmény:
(
1
9
9
9
)
X
-
k
Ã
¶
l
y
k
Ã
¶
k -
prucam
tag
bambano : "helyette a $( ) forma szabályos."
- oké, ezentúl ez lesz.Jester01:
"
u2=`awk 'NR==1 { printf "%s %s", $(NF - 1),$NF}' file.txt`
vagy
u2=`awk 'NR==1 {ORS=""; print $(NF - 1),$NF}' file.txt`
"
- köszönöm mindkettő SZUPER! -
prucam
tag
válasz
Jester01 #2722 üzenetére
"Szerintem az a baj, hogy az awk print automatikusan rátesz egy sorvéget."
- igen ott lehet valami. Ld. később.Vagy állítsd be az ORS-t vagy használd a printf-et.
- ezeket még nem ismerem... ???Egy kicsit próbálgattam másképp. Eredmények:
itt beírtam a scriptbe a változót
1, egy szó keres
u2=Tom
grep $u2 $i
grep "$u2" $i
-mindkét grep keresés jó2, két szó keres
u2=Tom Sawyergrep $u2 $i
line 17: Sawyer: command not found
grep "$u2" $i
-olyan találatok amiben egyik megadott szó sem szerepel (szavak: Tom Sawyer)3, idézőjelek közé a változó
u2="Tom Sawyer"grep $u2 $i
(program exited with code: 2)
grep "$u2" $i
csak a megadott két szót keresi. Tökéletes!4,
u2="és a ha"
ez is szuper !!!Vissza az awk-hoz, egy szót keres:
1, utolsó oszlop
u1=`awk 'NR==1 {print $NF}' file`grep $u1 $i
(program exited with code: 1)
grep "$u1" $i
(program exited with code: 1)
A "print $NF" az utolsó oszlopnál, tényleg gond van.2, 3. oszlop
u1=`awk 'NR==1 {print $3}' file`
grep $u1 $i
ez jó eredményt ad
grep "$u1" $i
ez is3, két oszlop a 3. és a 4. (két szó: légy a)
u1=`awk 'NR==1 {print $3, $4}'grep $u1 $i
grep: a: No such file or directory
...
(program exited with code: 2)
grep "$u1" $i
(program exited with code: 1)
Egyik sem jó.megpróbáltam "cut" parancsot is:
u1=`head -1 file | cut -c9-21`
echo $u1
légy a szü
grep "$u1" $i
a grep-nél már hibát ír.Összegzés:
Ha két v. több szót keresnék az nem jó. (kivéve így: u2="Tom Sawyer")
Szerintem a váltózónál a ``-el lesz a gond.
Lehet ott is kellene a "" ? De hogyan ??? -
prucam
tag
sziasztok!
A változó megadásánál elakadtam. A file.txt első sorából az utolsó két oszlopot kellene másik file2.txt-ben keresni.változó:
u2=`awk 'NR==1 {print $(NF - 1),$NF}' file.txt`
(két szó lesz az eredmény)1, az echo-ra kiírja:
echo $u2
a motelben2, grep "$u2" file2.txt
hogyan kellene helyesen a grep-pel, az $u2-t megváltoztatni hogy jó legyen?3, próbáltam a $(u2)-es módszert ( `...` helyet ), de rossz találatokat ír.
-
dabadab
titán
válasz
Archttila #2718 üzenetére
Mert megváltozott a html oldal felépítése.
Ezzel működik:
#!/bin/sh
value=$1
from=$2
to=$3
[ $# -lt 3 ] && { echo "Usage: $0 value source_currency target_currency"; exit 1;}
curl -s "https://www.xe.com/currencyconverter/convert/?Amount=$value&From=$from&To=$to" | sed -n 's/.*<p class="result__BigRate[^>]*">\([^<]*\).*/\1\n/p'
$ ./x.sh 10 EUR HUF
3,842.97 -
Archttila
veterán
Sziasztok!
Ezt az egyszeru currency convertert szeretnem hasznalni, de valami oknal fogva nem jelenik meg semmi a kimeneten:#!/bin/sh
value=$1
from=$2
to=$3
[ $# -lt 3 ] && { echo "Usage: $0 value source_currency target_currency"; exit 1;}
curl -s "https://www.xe.com/currencyconverter/convert/?Amount=$value&From=$from&To=$to" | sed -n -n "s/.*<span class='uccResultAmount'>\([^<]*\)<\/span>.*/\1/p"
-
Sonja
nagyúr
Igen, ez volt a baj. Feltéve Arch-ra a perl-rename csomagot, ezzel már tökéletes!
Köszönöm!
#2715 dabadab: Nem küldtétek az energiát, ez lehetett a gond.
-
dabadab
titán
Az lesz a gond, hogy nem akarod igazán, spirituálisan blokkolod a működését
Nulladik lépésként nézd meg, hogy egyáltalán tényleg van-e installálva a "rename" és tényleg az-e, amire BoB gondolt.
$ rename -V
/usr/bin/rename using File::Rename version 1.10Ha ez stimmel, akkor lehet, hogy a filenevekre nem illik valamiért a pattern (mert pl. olyan karakter van benne, amit különleges karakterként kezel, nem literalként).
-
Sonja
nagyúr
Milyen egysoros paranccsal lehetne megoldani egy mappában található fileok átnevezését úgy, hogy minden file bizonyos karakterig változó, de az utolsó 22 karakter ugyan az, és ezt az utolsó 22 karakter "levágva" szeretném átnevezni?!
01 - Valami ez az utolsó rész nem kell.txt
02 - Ez megint más ez az utolsó rész nem kell.txt
03 - Ez pedig hosszabb szöveg ez az utolsó rész nem kell.txt
stb.Remélem érthető mit szeretnék?!
-
dabadab
titán
válasz
Fecogame #2709 üzenetére
Nem véletlen, hogy a nem guis programok progress barja tipikusan egysoros, mivel azt lehet különösebb varázslások nélkül megcsinálni.
Ami kell hozzá, az igazából a \r, ami a sor elejére ugrik, illetve az echohoz egy -n, hogy ne rakjon ki a kiírás végére egy \n-t, szóval ez így működik:for i in {1..10}; do
sleep 1 && echo -en "\rÉpp itt tartok: $i - minden oké."
doneHa ennél több kell, akkor igazán jó, kész megoldásról nem tudok shellhez. Van a dialog, ami igazából dialogokat tud kirakni és elég kötött, hogy hogyan néznek ki, annak van egy progressbox típusa.
Vagy nekiállhatsz te saját magad kurzorvezérléssel szenvedni, ami nem lehetetlen, de lehet, hogy annyit nem ér meg az egész. -
Szeretném kiíratni az alábbi szöveget (nagyon leegyszerűsített példa), hogy éppen hol tart a folyamat, de nem mindig új sorban, hanem mindig ugyanabba. Hasonlóan, mint egy process bar.
A kódom valahogy így néz ki
for i in {1..10}; do
sleep 1 && echo -e "Épp itt tartok: $i\nMinden oké."
done
Na most ha így csinálom, 20 sor lesz az output. Azt szeretném, hogy több sort írjon ki, de éppen csak azt, ahol tart (vagyis jelen példában mindig 2 sort jelenít csak meg). Nem tudom hogy keressek rá
Valami ilyesmit szeretnék, csak nem egy karaktert kiírni, hanem akár több sort egyszerre.
i=1
sp="/-\|"
echo -n ' '
while true
do
sleep 0.1
printf "\b${sp:i++%${#sp}:1}"
done
-
vargalex
félisten
Tipikusan egy PID file létrehozásával szokták ezt megoldani (ami úgy szép, ha valóban a PID-et tartalmazza), amit a script végén törölsz. Induláskor pedig ellenőrzöd, hogy létezik-e és az a PID fut-e valóban (esetleg még azt, hogy valóban a saját scripted-e). Ha létezik a file és a PID is, akkor a scriptnek vége. Ha nem, akkor létrehozod a file-t, beleírva a PID-et és mehet a tényleges feladat végrehajtása. A file-t router esetén vagy külső tárolóra, vagy még inkább ramdrive-ra (tipikusan a /tmp, illetve a /var is ilyen pl. OpenWrt alatt) célszerű létrehozni, nem a véges írást biztosító flash-ra.
-
tjsz
senior tag
válasz
vargalex #2704 üzenetére
+1 kérdés, ha lehet: te hogyan oldanád meg, hogy 1 script egyidejűleg csak 1 példányban induljon el? Ugyanaz a script többféle esemény miatt is elindításra kerülhet pl. WAN oldal up vagy éppen down, napi riport készítés, stb. Valami ideiglenes file létrehozás-törléssel? (és annak ellenőrzésével)
-
tjsz
senior tag
Ahogy írtam, ez egy FreshTomato firmware
dnsmasq.conf:
pid-file=/var/run/dnsmasq.pid
domain=********
resolv-file=/etc/resolv.dnsmasq
addn-hosts=/etc/dnsmasq
dhcp-hostsfile=/etc/dnsmasq
expand-hosts
min-port=4096
stop-dns-rebind
rebind-localhost-ok
interface=br0
dhcp-range=tag:br0,192.168.1.51,192.168.1.200,255.255.255.0,10080m
dhcp-option=tag:br0,3,192.168.1.254
dhcp-option=tag:br0,44,192.168.1.254
interface=br1
dhcp-range=tag:br1,192.168.2.51,192.168.2.200,255.255.255.0,10080m
dhcp-option=tag:br1,3,192.168.2.254
dhcp-option=tag:br1,44,192.168.2.254
interface=br2
dhcp-range=tag:br2,192.168.3.51,192.168.3.200,255.255.255.0,10080m
dhcp-option=tag:br2,3,192.168.3.254
dhcp-option=tag:br2,44,192.168.3.254
dhcp-lease-max=255
dhcp-option=lan,252,"\n"
dhcp-authoritative
log-facility=/tmp/mnt/Kingston/Log/syslog_dnsmasq
dhcp-ignore=tag:br0,tag:!known
dhcp-ignore=tag:br2,tag:!known
cache-size=0
-
vargalex
félisten
Ahogy a kolléga írja. Az első oszlop a DHCP lease lejárta. Elég erőforrás pazarló lenne ezt a file-t minden másodpercben újraírni...
Esetleg saját scriptet használsz (dhcp-script, vagy dhcp-luascript paraméter) és az írja a lease file-t, a dnsmasq-nál pedig a -9, vagy --leasefile-ro kapcsolóval kikapcsolod a lease file írását. Ez utóbbi magyarázná azt is, hogy miért csak egy új IP kéréskor íródik a file...
Új hozzászólás Aktív témák
Hirdetés
- Motorola Edge 60 és Edge 60 Pro - és a vas?
- Fűnyíró topik
- Gitáros topic
- Építő/felújító topik
- Autós topik
- Telekom mobilszolgáltatások
- Milyen billentyűzetet vegyek?
- Digitális Állampolgárság Program DÁP
- Vékonyabb lett, jobb kamerát kapott, de az akku maradt a régi: itt a Fold7
- Sony WF-C710N - átlátok rajta
- További aktív témák...
- Windows 10 11 Pro Office 19 21 Pro Plus Retail kulcs 1 PC Mac AKCIÓ! Automatikus 0-24
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Eladó steam/ubisoft/EA/stb. kulcsok Bank/Revolut/Wise (EUR, USD, crypto OK)
- Kaspersky, McAfee, Norton, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap - NYÁRI AKCIÓ!
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- Xiaomi Redmi Note 13 256GB Kártyafüggetlen 1Év Garanciával
- Új Samsung Galaxy A36 5G 256GB, Kártyafüggetlen, 1 Év Garanciával
- Dell Latitude 8-11. gen i5, i7, 2-in-1 szinte minden típus csalódásmentes, jó ár, garancia
- Bomba ár! HP EliteBook 840 G2 - i5-5GEN I 8GB I 256GB SSD I 14" HD+ I Cam I W10 I Garancia!
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest