Linux за българи: Форуми

Нетехнически теми => Идеи и мнения => Темата е започната от: Naka в Jun 04, 2019, 11:42



Титла: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 11:42
Трябва да записвам временни файлове, които обаче да не се търкат а да стоят постоянно, докато аз ги изтъркам ръчно или чрез собствен скрипт.

/tmp се търка при ребоот и на всеки 7 дена.
/var/tmp е по постоянно - не се търка при ребоот, но се търка на всеки 30 дена, според age-а на файловете.

Tърся нещо стандартно за системата? или някоя друга 'tmp' директория? как може файловете в  /var/tmp да оцеляват.

Разбира се винаги може да направя моя собствена tmp директория в проекта и да я ползвам. Но все ми ще да е нещо стандартно.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: lunarvalley в Jun 04, 2019, 12:11
коя дистрибуция?


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 12:15
Centos 5 и 6. С планове за съвместимост с centos 7.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 04, 2019, 12:18
Досега не знаех че /var/tmp чисти файлове по-стари от 30 дни или след 30 дни, може да е нещо специфично за дадени дистрибуции, само предполагам.

Иначе тук има някакъв обзор на разликите и развитието на двете:
https://unix.stackexchange.com/questions/30489/what-is-the-difference-between-tmp-and-var-tmp

Лично аз съм ползвал следното за постоянен сторидж: /home/tmp (със съответните права, както /tmp).
Може и /home/username/tmp, ако е само за един потребител.

PS: това обаче беше защото не ми стигаше мястото в /tmp, а не като алтернативно място за стандартните неща от /tmp.
А ако е само за определен сървис и може да се промени мястото на времените файлове, пак може да свърши работа.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 12:21
Досега не знаех че /var/tmp чисти файлове по-стари от 30 дни или след 30 дни,

Това доколкото разбрах е нововъведение в systemd  >:( и  centos 7.
https://www.thegeekdiary.com/centos-rhel-7-how-tmpfiles-clean-up-tmp-or-var-tmp-replacement-of-tmpwatch/

---
PS и в Centos 6 се търкат в /var/tmp по-старите от 30d.
от  /etc/cron.daily/tmpwatch


Не искам също да барам конфиг файлове. Търся накакъв стандартен механизъм.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 04, 2019, 12:34
Смътно помня че имаше някакъв начин (systemname.overload) или нещо подобно за да промениш конфигурацията в systemd без да пипаш оригиналните файлове.
Правил съм нещо такова, но беше преди години  :-[

https://askubuntu.com/questions/659267/how-do-i-override-or-configure-systemd-services#659268


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: lunarvalley в Jun 04, 2019, 12:42
Цитат
systemd

 ::)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: go_fire в Jun 04, 2019, 13:29
В такива случаи Мариян е въвел шиндошарското /storage. Щом го търпят в такава огромна компания, значи не е проклятие да се ползват практики на врага.


п.п. Ако те е страх да пипаш в кореновия каталог, то можеш да си създадеш на клончето на проекта. При такъв случай старите майстори разправяха задължително да се намира поне едно равнище по-нагоре, от това, което подаваме на Апаха за индекс.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 13:52
п.п. Ако те е страх да пипаш в кореновия каталог, то можеш да си създадеш на клончето на проекта.

В действителност ме е страх да е в клончето на проекта. Понеже файлове постоянно се създават и търкат.

Затова търся нещо стандартно в кореновия каталог. Обаче така че да не съдавам допълнително директории.
Например както предложи ray в /home/tmp - това е идеално. Обаче как ще стои въпртосът за един вероятен бъдещ хостинг? Там дали ще ми позволят да си създам  /home/tmp ?

В момента няма такива ограничения, щото всичко на сървера може да променям и създавам. Ама правя далечна сметка - така че да върви на хостинг.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 04, 2019, 14:04
Тъй като имам известен опит с поне три хостинг компании (като поддръжка  :) ) е силно препоръчително да ги питаш изрично, ако знаеш кои са  ;D
Повечето имат доста ограничения и не дават достъп до неща извън потребителската ти папка, но пък "username/tmp" може да свърши работа.
Обаче там няма да имаш права да насочваш услуги към тази папка а вероятно и ограничения и за други неща  :-[

Всъщност ако вземеш "облачен хостинг" това може да реши проблема, но ще е по-скъп от споделения (но пък имаш гарантиран ресурс и права).
На "споделения" всеки който товари много взема и от твоя ресурс, въпреки всички ограничения и т.н.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 04, 2019, 15:01
@Naka, при стандартните cpanel-ски хостинги пътят е /home/user/tmp . Не съм забелязвал да се чисти тази директория, но трябва да проверя. Твоите права при споделените хостинги се разпростират съответно тук /home/user/. (няма да ти дадат да пишеш в /home/tmp)
Ако искаш да има съвместимост и да си сигурен, че нещо няма да ти забърши файловете, бих ти предложил да използваш:
~/temp
По този начин, винаги ще си имаш темп папка, която ти да си триеш независимо къде я местиш (независимо какъв user си за съответния сървър)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 15:06
@Naka, при стандартните cpanel-ски хостинги пътят е /home/user/tmp . Не съм забелязвал да се чисти тази директория, но трябва да проверя. Твоите права при споделените хостинги се разпростират съответно тук /home/user/. (няма да ти дадат да пишеш в /home/tmp)

А при хостинг  sys_get_temp_dir() https://www.php.net/manual/en/function.sys-get-temp-dir.php какво ще върне?

би трябвало да върне /tmp и да мога да пиша в /tmp. (това е за друго нещо, не за конкретният проблем.)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 04, 2019, 15:12
пробвах това:
Код
GeSHi (PHP):
  1. <?php
  2. sys_get_temp_dir();
  3. ?>
но нищо не връща. Не ме бива по коденето, така че ако греша, дай точно какъв php файл да създам и ще ти го пробвам.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 15:21
сложи един print отпред
Код:
<?php
print sys_get_temp_dir();
?>


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: remotexx в Jun 04, 2019, 15:23
Колеги, бъркате дефинициите нещо... Как това "да стоят постоянно, докато аз ги изтъркам ръчно" е дефиниция за временен файл, когато на практика си е точно постоянен или нормален файл, записваш си го когато си искаш, триеш когато искаш, ами тогава що се натискаш да го пишеш в тмп, давай в домашната при другите нормални файлове
П.П. Ей зорлем ще го направите 'обратен' тоя файл  :P


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 04, 2019, 15:24
сложи един print отпред
Код:
<?php
print sys_get_temp_dir();
?>

Връща това:
/tmp

ПП: @remote, аз затова предложих "temp". Объркването мисля че идва само от името, а не от това дали е наистина временна :)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 15:31
а това:

Цитат
touch('/tmp/somefile.txt');
var_dump(is_file('/tmp/somefile.txt'));

@Ремо усещам се че бъркам дефиницията........ама не съвсем. Файла подлежи на търкане след време.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 04, 2019, 15:39
bool(true)

пп: Но пак казвам: не те съветвам на споделен хостинг да използваш системния тмп. Той се следи обикновено и от защитни софтуери и може да ти затрие файловете още по-бързо от системните кронове.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 04, 2019, 15:44
Цитат
пп: Но пак казвам: не те съветвам на споделен хостинг да използваш системния тмп.
Това е за друго. Ако се използва /tmp времето за съществуване на файла ще е 2-3 сек. максимум.


Значи при хостинг свободно може да се пише в /tmp и вероятно в /var/tmp щото е със същият премишън.

тогава защо при cpanel-ските хостинги има път  /home/user/tmp  ??? За такива като мене ли?


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 04, 2019, 16:19
Цитат
пп: Но пак казвам: не те съветвам на споделен хостинг да използваш системния тмп.
Това е за друго. Ако се използва /tmp времето за съществуване на файла ще е 2-3 сек. максимум.


Значи при хостинг свободно може да се пише в /tmp и вероятно в /var/tmp щото е със същият премишън.

тогава защо при cpanel-ските хостинги има път  /home/user/tmp  ??? За такива като мене ли?
Предполагам , да :)

В цпанелския темп седят някакви други работи и мисля че не се чисти. Ето ти пример:

Цитат
tmp# ls
analog   cpbandwidth  horde                        sendmail                               sess_a8c2030b6bfe2bfa2ee8c33dd5f8fb3a  sess_d21243d1553f21279c7930bde0f0fe6a  webalizer
awstats  errors       pma_template_compiles_sdwne  sess_04c5193cdbcd2f47fabd43b294bc90db  sess_c322ea98f5d61c46f55a6d9131f17fec  sess_f0d6f98184eefdc5291080a35d5ed8d2  webalizerftp

а в сървърния не знам точно кога пишеш. Имай предвид, че има и разлики дали към цпанела има и cloudlinux или не. За това ти предлагам и ~/temp . Такава не съм срещал и аз винаги си я правя за такива цели.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 04, 2019, 16:58
Цитат
пп: Но пак казвам: не те съветвам на споделен хостинг да използваш системния тмп.
Това е за друго. Ако се използва /tmp времето за съществуване на файла ще е 2-3 сек. максимум.


Значи при хостинг свободно може да се пише в /tmp и вероятно в /var/tmp щото е със същият премишън.

тогава защо при cpanel-ските хостинги има път  /home/user/tmp  ??? За такива като мене ли?

Вече около 5 години не се занимавам с хостинги, но по памет потребителите работят в някакъв вид jail, и там имат създаден /tmp etc., но той сочи към /user/tmp.

По принцип в “затвора” се копират всички необходими неща.
Но нямаш достъп до истинския /tmp
Проверете, създайте нещо и вижте да не е там  :)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 05, 2019, 09:51
Цитат
пп: Но пак казвам: не те съветвам на споделен хостинг да използваш системния тмп.
Това е за друго. Ако се използва /tmp времето за съществуване на файла ще е 2-3 сек. максимум.


Значи при хостинг свободно може да се пише в /tmp и вероятно в /var/tmp щото е със същият премишън.

тогава защо при cpanel-ските хостинги има път  /home/user/tmp  ??? За такива като мене ли?

Вече около 5 години не се занимавам с хостинги, но по памет потребителите работят в някакъв вид jail, и там имат създаден /tmp etc., но той сочи към /user/tmp.

По принцип в “затвора” се копират всички необходими неща.
Но нямаш достъп до истинския /tmp
Проверете, създайте нещо и вижте да не е там  :)
@ray така е както казваш, само дето при нас на claudlinuxa си отиват в /home/user/.cagefs/tmp, a  не отиват и в /home/user/tmp .


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 05, 2019, 11:11
Дам, нормално, нещата се развиват  8) дори при cPanel !
https://www.servercake.blog/cagefs-security/

Пак да пиша че може да ползва и "dedicated/virtual/cloud" server, там ще си има пълни права.
Защото не знам какво ще стане ако се наложи рестарт, нещо друго на сървъра със споделени хостинги.

Не знам каква е разликата в цените, но още преди 5 години 'облаците" вече навлизаха доста бурно  ::)


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: Naka в Jun 05, 2019, 11:25
За това ти предлагам и ~/temp . Такава не съм срещал и аз винаги си я правя за такива цели.

А коя е home директорията? (при хостинг?)
при мен

Код:
var_dump(realpath('~'));
връща false;


A с какъв пермишън(user) ще се запише един файл например в /tmp ? при мен (Центос) е с apache.apache

https://stackoverflow.com/questions/20535474/php-get-user-home-directory-for-virtual-hosting/21473475
Цитат
On most regular servers, those daemons (apache, nginx, etc.) have no real "home directory".
If you consider "virtual hosting", that wouldn't be possible, as there can only be one home directory per user, but many vhosts per daemon.
I guess what you are looking for, ist the environment variable DOCUMENT_ROOT (the root directory for the current vhost documents).




Титла: Re: Постоянна /tmp системна директория?
Публикувано от: ray в Jun 05, 2019, 12:03
Най-вероятно ще бъде собственост на твоя потребител, не на някой системен или системна група.

Мисля че все още широко се ползва suEXEC и suPHP:
https://help.myhosting.com/hc/en-us/articles/360002392424--cPanel-Enable-or-Disable-Apache-suEXEC-and-suPHP
https://documentation.cpanel.net/display/EA/Apache+Module%3A+SuPHP

Но нека @makeme каже, тук по-скоро посочвам някои доста използвани инструменти при споделения хостинг.
Също така не знам при дадена хостинг компания как се изпълнява php-кода - mod_php | fastCGI | suPHP ?

PS: най-сигурния начин за тестване е да купиш 1-2 хостинга за 2-3 месеца (няма да е скъпо) ако може така и там да тестваш реално.
Това ако си сигурен че ще ти трябва и хостинг, единия е добре да е на cloud.


Титла: Re: Постоянна /tmp системна директория?
Публикувано от: makeme в Jun 05, 2019, 15:27
Най-вероятно ще бъде собственост на твоя потребител, не на някой системен или системна група.

Мисля че все още широко се ползва suEXEC и suPHP:
https://help.myhosting.com/hc/en-us/articles/360002392424--cPanel-Enable-or-Disable-Apache-suEXEC-and-suPHP
https://documentation.cpanel.net/display/EA/Apache+Module%3A+SuPHP

Но нека @makeme каже, тук по-скоро посочвам някои доста използвани инструменти при споделения хостинг.
Също така не знам при дадена хостинг компания как се изпълнява php-кода - mod_php | fastCGI | suPHP ?

PS: най-сигурния начин за тестване е да купиш 1-2 хостинга за 2-3 месеца (няма да е скъпо) ако може така и там да тестваш реално.
Това ако си сигурен че ще ти трябва и хостинг, единия е добре да е на cloud.
Точно това е, че никога не се знае. На клаудлинукс обикновено е lsapi ($2). При стоковите вече се ползва PHP-FPM (cgi) ($2). И всички останали изброени по-горе може да са в някакъв различен сетъп. От там като сметнеш че говорим само за цпанели, а има и други сетъпи (плеск например) -> sky is the limit :)
Иначе самия user по всички  споделени хостинги стъпва върху идеята за chroot. За PHP, не мисля че ще можеш да ползваш сървърните променливи, а по-скоро някакви shell exec команди. Другият вариант е стандартния (както са CMS-ите) -> от документ руута нататък. (...public_html/tmp..). По този начин където и да мигрираш променливата ще ти върне тамошния document root.