Fórum Ubuntu CZ/SK
Ostatní => Otevřená diskuze kolem Linuxu a OSS => Téma založeno: Le_Ze 06 Prosince 2015, 09:01:32
-
Zdar
Poradí někdo, kde dělam chybu.
Vytvořil jsem si ramdisk
tmpfs /home/pi/ramdisk tmpfs defaults,mode=0755,size=40m 0 0
Mužů v něm vytvářet podadresáře i soubory.
Mohu do něj cokoliv nakopírovat.
Nedá se však zapisovat do souboru.
Proč
Soubor file1 normálně vytvořím sudo touch /home/pi/ramdisk/file1
Už ale do něj níc nezapíšu.
Takto take ne.
pi@raspberrypi ~ $ sudo echo "zkouska" > /home/pi/ramdisk/test
-bash: /home/pi/ramdisk/test: Operace zamítnuta
-
Ja pouzivam mode 1777.
-
Pokud použiješ sudo, spustí se pod rootem jen první příkaz za ním, ale přesměrování je již další operace bashe, která proběhne pod uživatelem. Buď se přihlaš jako root do konzole a pak spouštěj příkazy, nebo musíš použít konstrukci, která pod ním spustí celý příkaz, pokud tedy je použití roota nutností.
-
Děkují moc, mode 1777 pomohlo, všude na netu pišou těch 0755
echo "zkouska" > /home/pi/ramdisk/test
Funguje to i bez sudo
Ale stejnák to můj problém nevyřešilo.
Je adresář /home/pi/teplota
V adresáři 2 soubory - spust.sh a teplomer_1.rrd
Soubor spust.sh se spouští co 5 minut a zapisuje data do souboru teplomer_1.rrd
rrdtool update /home/pi/teplota/teplomer_1.rrd N:${teplota:-NaN}:NaN
Funguje to.
Vytvořil jsem ramdisk /home/pi/ramdisk
A v tom souboru spust.sh přidal.
rrdtool update /home/pi/ramdisk/teplomer_1.rrd N:${teplota:-NaN}:NaN
Skript však zapisuje data jen do toho souboru v adresáři teplota.
Pokud zruším ramdisk, a systém bere adresář ramdisk jako složku, normálně to fungje.
Zkoušel jsem i sudo chmod 1777 /home/pi/ramdisk/teplomer_1.rrd :-\
-
Ako dlho trva nez to zapises a kym to kontrolujes? Nemoze sa stat ze data su este v cash? Ja som mal podobny problem ked som zapisoval data do ramdisku a hned som sa ich pokusil citat.
Skus za riadok rrdtool update /home/pi/ramdisk/teplomer_1.rrd N:${teplota:-NaN}:NaN dat prikaz
sync
-
Na ten zápis do souboru se občas dá použít tee:
echo "string" | sudo tee <soubor>
Ale nemělo by to být ve skriptu, protože sudo se může zeptat na heslo a ten program tak zablokovat.
-
Tu jde o to že to do toho souboru vůbec nezapisuje.
Jde to vidět podle času za souborem.
V adresaří teplota se co 5 minut mění.
(http://www.fastimages.eu/images/puttytjsj.png)
(http://www.fastimages.eu/images/puttyrhyh.png)
A nejde to aní takto.
cp /home/pi/teplota/spust.sh /home/pi/ramdisk
sudo chmod 755 /home/pi/ramdisk/spust.sh
/home/pi/ramdisk/spust.sh
-
V Ubuntu je jeden predpripraveny tmpfs v /dev/shm, muzes ho klidne pouzit.
-
/dev/shm taky pouzivam, ale muzou a bejvaj tam soubory od jinych programu, takze si tam clovek nemuze delat uplne cochce.
-
/dev/shm mam také a prazdné.
Když tam něco nakopíruji a dam reboot tak to zmizne.
Takže by to mohlo fungovat.
Zkusím.
-
Dotaz.
Když zapisujete něco do souboru v ramdisku, mění se Vám čas?
Počet jsem se na netu, že čas zůstava furt stejný a důvod je mount ramdisku s relatime volbou
-
to by muselo být mountnuté s volbou noatime
-
čudne to je.
Takto to mam ja.
tmpfs /home/pi/ramdisk tmpfs defaults,mode=1777,size=40m 0 0
Zkoušim i ten /dev/shm
Všude se čas nemění.
md5sum /dev/shm/teplomer_1.rrd
md5sum /home/pi/ramdisk/teplomer_1.rrd
Vidím že se co 5 minut hash mění
Tak co je potom špatně?