1
|
Linux секция за начинаещи / Настройка на програми / Заместване със sed на url от променлива
|
-: Mar 14, 2021, 13:12
|
Някой може ли да ми помогне да проумея защо това работи: echo "https://unix.stackexchange.com/" | sed 's;https://unix.stackexchange.com/;https://www.linux-bg.org;g' А това не: url1="https://unix.stackexchange.com/" url2="https://www.linux-bg.org" echo $url1 | sed s;${url1};${url2};g Пробвах с всякакви размествания на "" '' \\ , но така и не успях да го подкарам.
|
|
|
2
|
Linux секция за начинаещи / Настройка на програми / Тест за скорост на дикове
|
-: Aug 07, 2020, 23:13
|
Здравейте колеги, Написах едно скриптче за fio да си тестваме дисковете. Идеята ми е резултатът да наподобява този на CrystalDiskMark: GeSHi (Bash): #!/bin/bash ## Test your drive using fio. The output should be similar to CrystalDiskMark on Windows ## fio_like_crystaldiskmark.sh ## by @makeme v.2020-08-07 if ! [ -x "$(command -v fio)" ]; then echo 'Please install fio' >&2 exit 1 fi filename=fiotest_ OPTIONS="--size=1G --ioengine=libaio --runtime=60 --direct=1" ## TESTS SEQ1M_Q8T1_read () { fio --name=$filename$FUNCNAME --bs=1M --rw=read --max-jobs=1 --iodepth=16 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } SEQ1M_Q8T1_write () { fio --name=$filename$FUNCNAME --bs=1M --rw=write --max-jobs=1 --iodepth=16 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } SEQ1M_Q1T1_read () { fio --name=$filename$FUNCNAME --bs=1M --rw=read --max-jobs=1 --iodepth=2 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } SEQ1M_Q1T1_write () { fio --name=$filename$FUNCNAME --bs=1M --rw=write --max-jobs=1 --iodepth=2 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } RADN4K_Q32T16_read () { fio --name=$filename$FUNCNAME --bs=4k --rw=randread --max-jobs=16 --iodepth=64 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } RADN4K_Q32T16_write () { fio --name=$filename$FUNCNAME --bs=4k --rw=randwrite --max-jobs=16 --iodepth=64 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } RADN4K_Q1T1_read () { fio --name=$filename$FUNCNAME --bs=4k --rw=randread --max-jobs=1 --iodepth=2 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } RADN4K_Q1T1_write () { fio --name=$filename$FUNCNAME --bs=4k --rw=randwrite --max-jobs=1 --iodepth=2 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename* } ## Little info before test df -h . echo ## Let's go echo -e "TestName READ WRITE" "\n"\ "SEQ1M_Q8T1" $(SEQ1M_Q8T1_read) $(SEQ1M_Q8T1_write)"\n"\ "SEQ1M_Q1T1" $(SEQ1M_Q1T1_read) $(SEQ1M_Q1T1_write)"\n"\ "RADN4K_Q32T16" $(RADN4K_Q32T16_read) $(RADN4K_Q32T16_write)"\n"\ "RADN4K_Q1T1" $(RADN4K_Q1T1_read) $(RADN4K_Q1T1_write) | column -t
Инсталиране от гит:GeSHi (Bash): wget https://raw.githubusercontent.com/makemegit/fio_like_crystaldiskmark/master/fio_like_crystaldiskmark.sh chmod +x fio_like_crystaldiskmark.sh ./fio_like_crystaldiskmark.sh
Стартира се в настоящата директория, за да се тества диска във който се намираш в момента. Ще се радвам да си тествате дисковете и да пейстнете тук резултатите заедно с модела.Ето и моите на лаптопа: Samsung 970 Evo NVMeGeSHi (Bash): $ fio_like_crystaldiskmark.sh Filesystem Size Used Avail Use% Mounted on /dev/nvme0n1p1 458G 309G 126G 72% / TestName READ WRITE SEQ1M_Q8T1 3335MB/s 3140MB/s SEQ1M_Q1T1 3264MB/s 2942MB/s RADN4K_Q32T16 919MB/s 302MB/s RADN4K_Q1T1 84.0MB/s 196MB/s
Seagate Barracuda Pro ST1000LM049 SATA 6Gb/s 2.5 HDDGeSHi (Bash): $ fio_like_crystaldiskmark.sh Filesystem Size Used Avail Use% Mounted on /dev/sda 916G 490G 380G 57% /storage TestName READ WRITE SEQ1M_Q8T1 132MB/s 137MB/s SEQ1M_Q1T1 136MB/s 141MB/s RADN4K_Q32T16 749kB/s 544kB/s RADN4K_Q1T1 168kB/s 177kB/s
*8 минути е максималното време за тестване, но ако желаете може да го намалите от "--runtime=60" (сега е 8 теста по макс 1 мин) https://github.com/makemegit/fio_like_crystaldiskmark
|
|
|
3
|
Linux секция за начинаещи / Настройка на хардуер / Nvidia и Ubuntu 20.04 дериватите
|
-: May 08, 2020, 08:03
|
Здравейте колеги, В другата тема се заговори за 20.04, но понеже не желая да я цапам с въпроса си, отварям нова. Има ли някой с Nvidia видео, който е инсталирал 20.04? До колкото разбрах най-после трябва да се появи оптимус чекчето в контролния панел на nvidia. За Ubuntu MATE прочетох че ще има аплет (от 19.10 нататък), но така или иначе нямам къде да го пробвам в момента (имам свободен лаптоп но само с интел). За другите си е само от nvidia панела. Ще съм благодарен ако някой сподели дали смяната на intel/nvidia вече е в реално време , а не избираш само едното и рестарт после. Става дума за това: https://i.stack.imgur.com/9OygS.png
|
|
|
4
|
Програмиране / Web development / Bash скрипт за менажиране на домейни в Cloudflare
|
-: Feb 10, 2020, 21:13
|
Здравейте колеги, Пиша си едно баш скриптче за менажиране на записите в Cloudflare и реших да го споделя с вас. https://github.com/makemegit/cloudflare_bash_admin/blob/master/cloudflare_bash_adminКак работи? GeSHi (Bash): #------------------------------------------------------------------# # Cloudflare zone is the zone which holds the record # zone=makemeone.tk # Main Domain # # dnsrecord is the record which will be updated (no need to enter) # dnsrecord=www.makemeone.tk # # Cloudflare authentication details. *Keep these private !!! # cloudflare_auth_email=emailFAKE@gmail.com #!!!# cloudflare_auth_key=e07910a06a086c83bFAKE27aa00b26ed11126ed #!!!# #------------------------------------------------------------------#
zoneПопълва се един от домейните в акаунта (за да има някаква база на променливите и по default да менажирате него) dnsrecordНякакъв негов запис за default. Примерно www. cloudflare_auth_emailМейла с който влизате в Cloudflare. cloudflare_auth_keyВзима се от Cloudflare -> Overview -> Get your API token (долу вдясно) -> Global API Key ---------------------------------------- 0.) При пускане на скрипта, виждате следните опции :$ ./cloudflare_bash_admin
Please Select for makemeone.tk :
1. List and select another Domain name 2. List and change DNS Records 3. Create new DNS Record (Not DONE) 4. Add new Domain (Not Done) 0. Quit
Enter selection [0-4] > 1.) При избиране на опция 1 се изброяват домейните в акаунта и може да въведете друг. Ако желаете само да ги видите, след като ги изброи, натиснете "q" за да се върнете назад:Domains in your Cloudflare account: makemeone.tk makemesrv.tk Enter the domain name (q for back)> makemesrv.tk Now you are managing makemesrv.tk 2.) При избиране на опция 2 се изброяват записите за съответния домейн (избраният домейн го пише на реда Please Select for ... ) и може да го промените. Ако желаете само да ги видите, след като ги изброи, натиснете "q" за да се върнете назад:---- DNS Zone Rcords for makemesrv.tk ---- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ftp.makemesrv.tk A 178.162.201.194 mail.makemesrv.tk A 178.162.201.194 makemesrv.tk A 178.162.201.194 http://www.makemesrv.tk A 178.162.201.194 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Enter the subdomain name (q for back)> mail.makemesrv.tk A 178.162.201.195 Changing record for mail.makemesrv.tk to 178.162.201.195 true
Скриптът поддържа и различни типове записи. Например може да промените от А запис на CNAME:ftp.makemesrv.tk A 178.162.201.194 mail.makemesrv.tk A 178.162.201.195 makemesrv.tk A 178.162.201.194 http://www.makemesrv.tk A 178.162.201.194 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Enter the subdomain name (q for back)> mail.makemesrv.tk CNAME makemesrv.tk Changing record for mail.makemesrv.tk to makemesrv.tk true *Между другото ако не върне true, значи нещо не работи (примерно синтаксиса ви е грешен) и не е променило нищо За сега съм стигнал до тук Ще обновявам като има прогрес и с други благинки ПП: Домейните и IP-тата са реални, но са регистрирани само заради този скрипт и тестовете покрай него. Затова предпочетох да ви дам истински, нецензориран изход. По-нататък може и да ги цензорирам, когато всички ги видите ПП2: Имах малък проблем с избирането на раздела за тоя скрипт. Така че, @go_fire, ако сметнеш, че е за другъде, мести.
|
|
|
6
|
Linux секция за начинаещи / Настройка на хардуер / Прегряване на лаптоп
|
-: Sep 07, 2019, 19:47
|
Здравейте колеги, Както знаете, си взех нов лаптоп Леново и колкото и да му се радвам, искам да споделя малко препятствия с прегряването, както и моето скриптче за решаването му. Смятам че това ще послужи на всеки, който желае да си запази лаптопа за по-дълго време. Къде е причината?В моя случай разполагам с i7-8750H, който е прекрасен процесор за лаптопи, но реално има добра базова ( 2.20 GHz) и прекалено голяма максимална тактова чистото ( 4.10 GHz). Също така трябва да отбележа, че е с 6 реални и 12 логически ядра ( т.е. 6 процесора) От тук следва, че всеки път когато се натовари (примерно играеш игра или извършваш cpu интензивни действия) turbo-то започва да клоква процесора. Разбира се 4.10 GHz е невъзможно за поддържане при какъвто и да е охладител за лаптоп (мака и моя модел да е с доста добър) и в момента на достигане на максимална температура (9* градуса) започва да го коригира чрез cpu throttling. Няма нищо лошо в използването на тази технология, но реално това означава , че седиш постоянно на 99 градуса, когато го товариш (представете си при разархивиране на огромен архив). Моите решения:За безпроблемна работа просто намалям максималната чистота на турбото или го изключвам напълно, ако искам и да ми е тихичко. Ето и скрипта: GeSHi (Bash): #!/bin/bash echo "Please select maximum CPU frequency:" echo "" PS3='Please enter your choice: ' options=("4.1Ghz (default)" "3.6Ghz (normal)" "3.1Ghz (silent)" "Intel Turbo ON" "Intel Turbo OFF" "Quit") select opt in "${options[@]}" do case $opt in "4.1Ghz (default)") for cpunumber in $(seq 0 11) ; do echo "4100000" | sudo tee /sys/devices/system/cpu/cpu$cpunumber/cpufreq/scaling_max_freq ; done break ;; "3.6Ghz (normal)") for cpunumber in $(seq 0 11) ; do echo "3600000" | sudo tee /sys/devices/system/cpu/cpu$cpunumber/cpufreq/scaling_max_freq ; done break ;; "3.1Ghz (silent)") for cpunumber in $(seq 0 11) ; do echo "3100000" | sudo tee /sys/devices/system/cpu/cpu$cpunumber/cpufreq/scaling_max_freq ; done break ;; "Intel Turbo ON") echo "0" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo break ;; "Intel Turbo OFF") echo "1" | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo break ;; "Quit") break ;; *) echo "invalid option $REPLY";; esac done
* Това разбира се е за интелски процесори и скрипта е написан за моя брой на логически ядра / $(seq 0 11) / и моите мегахерци / do echo "4100000..." /Та, ако имате мнения по-въпроса или просто да споделите дали сте имали подобни проблеми, ще се радвам да ги чуя.
|
|
|
7
|
Linux секция за начинаещи / Настройка на програми / Kubuntu (KDE) трей и нотификации
|
-: Jun 04, 2019, 14:48
|
Здравейте колеги,
Сдобих се най-после с lenovo y530 и реших че е време, да сменя графичната среда (дистрибуцията като цяло). До сега използвах MATE, но от доста време желая KDE. Инсталирах чиста инсталация Kubuntu и въпреки, че имах малко проблеми с драйверите, сега всичко е наред.
Отдавна не съм ползвал KDE и съм малко бос, та не мога да разбера: нормално ли е нотификациите и трей иконите, да не можеш, да ги отваряш с ляво копче? Ако да, има ли някаква настройка за промяна на това?
За да съм по-конкретен - имам viber, slack и skype, които бих искал при кликане върху трей иконата, да се отварят (може и с вдоен клик). Принципно това е стандартно действие и се учудвам, че тук не е.
Относно нотификациите - те се появяват, но не мога да кликам по тях. Примерно: идва ми мейл в thunderbird-а, излиза нотификация, но при кликане върху нея, не се отваря клиента.
|
|
|
8
|
Linux секция за начинаещи / Настройка на хардуер / Linksys WRT1900ACv2 с OpenWrt Linux
|
-: May 04, 2019, 16:15
|
Здравейте колеги, За да не продължавам с цапането на тази тема , реших да ви върна фийдбека за моите препятствия с домашната си мрежа тук. От всичкото четене и благодарение на Брадата достигнах до заключение, че искаш ли гигабитова свързаност у вас, трябва да имаш рутер с поне 2 ядра и то не нещастни като на стария ми, а на по поне 600-700mhz+ . Рутера, който си закупих притежава 2 ядра на по 1600mhz, докато старият ми беше с 1 на 400mhz. Ето и визуално сравнение при работата на 2та: TP-link 1043 v1 (400mhz)ПП2: Ето и снимка от htop на рутера, при сваляне с 15МБ/с на локалната пашина. За повече направо спира. (С фабричния фърм е същата работа)
Linksys WRT1900ACv2 с 2x1600mhzДо всички, които се питат да ползват ли TP-Link-овете: Новите им рутери са с 7**mhz едноядрени процесори и аз лично не бих взел техен "High-end" повече, но пък бих взел някой евтин вариант например tp-link94*n. Причината е, че всички са им с един и същи процесор, но за "High-end" версиите той е недостатъчен! Хардуерът се явява ботълнек на фичърите, заради които уж си го избрал. В миналата тема ми препоръчахте Микротик, та ето и моето мнение, след доста четене и размисли: Техните рутери наистина са едни от най-добрите като цена/качество. За парите, които ще дадете, най-вероятно няма да намерите рутер с по-добър процесор! Единственото, което на мен не ми допадна е сложното им менажиране. Това го казвам като човек, който има само основни познания в областта на мрежите. За всички останали, както и за тези, които имат желание да ги разучат, ги препоръчвам искрено. Продължавам с тестовете на новата си придобивка и трябва да споделя, че много и се кефя ПП: Относно обхвата - същият е като на 1043-ката на 2.4ghz, но на 5ghz е с около 20% по-слаб (това на око разбира се ) ПП2: Ето и сравнение на спийдтестовете: TP-link 1043 v1 (400mhz)GeSHi (Bash): ~# speedtest --server 1864 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from -(-.-.-.-)... Hosted by A1 BG (Sofia) [126.87 km]: 5.596 ms Testing download speed........................................ Download: 204.11 Mbit/s Testing upload speed.................................................. Upload: 148.24 Mbit/s
GeSHi (Bash): # speedtest --server 3585 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from -(-.-.-.-)... Hosted by LeaseWeb (Frankfurt) [1516.93 km]: 57.298 ms Testing download speed........................................ Download: 157.16 Mbit/s Testing upload speed.................................................. Upload: 51.04 Mbit/s
Linksys WRT1900ACv2 (2x1600mhz)GeSHi (Bash): # speedtest --server 1864 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from -(-.-.-.-)... Hosted by A1 BG (Sofia) [126.87 km]: 4.35 ms Testing download speed........................................ Download: 817.55 Mbit/s Testing upload speed.................................................. Upload: 320.10 Mbit/s
GeSHi (Bash): # speedtest --server 3585 Retrieving speedtest.net configuration... Retrieving speedtest.net server list... Testing from -(-.-.-.-)... Hosted by LeaseWeb (Frankfurt) [1516.93 km]: 57.076 ms Testing download speed........................................ Download: 299.67 Mbit/s Testing upload speed.................................................. Upload: 73.80 Mbit/s
Домашният ми сървър, от който са тези тестове минава и през един евтин TP-link Switch и доста кабеляк (евтин и аз съм го кримпвал), затова пуснах и от GamingPC-то: Преди това не съм хващал над 300
|
|
|
9
|
Игри за Linux / Общ форум / Игрите от з а м у н д @
|
-: Jan 15, 2019, 16:26
|
Някой свалял ли е от там игри за линукс (гледам има цяла секция за пакетирани игри за линукс) и знаете ли дали може да се разчита на техните пакетажници? Гледам има стари игри от детството ми и като ме налегне носталгията, се зачудвам. Аз съм малко параноичен и винаги съм ги избягвал, но ми е интересно вашето мнение. Ако е позитивно може и да се престраша
|
|
|
10
|
Linux секция за начинаещи / Настройка на програми / Всичко за swappiness
|
-: Apr 11, 2018, 17:27
|
Здравейте колеги, Понеже не открих такава тема във форума, реших да отворя една за дискусия. Интересува ме как, кога и колко, като стойност, използвате за swappiness? Малко въведение:Стойността swappiness контролира, кога ядрото ще използва хард/ссд диска (swap дяла/файла) вместо физическата памет. Диапазона за настройка е от 0-100. По-голяма стойност, означава предпочитане на swap дяла/файла, а по-малка - използването на физическата памет(РАМ). В повечето случаи, стойността е 60.
Проверка на swappiness: > sysctl vm.swappiness Промяна на swappiness стойността на 20: > sysctl vm.swappiness=20 Промяна на swappiness стойността на 20, запазено след рестарт: > nano /etc/sysctl.conf въведете/променте реда: vm.swappiness=20
Формула за изчисление на стойността: заетата РАМ, при която ядрото започва да използва SWAP = РАМ / 100 * swappiness Та, да се върна на въпроса - Променяте ли стойностите на машините, които използвате/конфигурирате. Примерно: Аз лично на повечето машини използвам стойност 10/20, при условие че съм подсигурен от към РАМ за тях. Малкото ми домашно сървърче е с 8ГБ рам, не се използва интензивно и от много процеси (рамта му стига), и за това там съм с 20. Друга моя десктоп машина е с 16Гб пам, използва се доста интензивно (рамта му стига), и затова съм с 10. И на 2те машини swap дяла/файла е върху ССД. Моля споделете, какви стойности използвате вие, както и при какви ситуации.
|
|
|
11
|
Linux секция за начинаещи / Настройка на програми / Bash script за изрязване на N колона
|
-: Apr 05, 2018, 07:23
|
Здравейте колеги, Понеже много често ми се налага (всеки ден по много пъти ) да използвам awk '{print $N}' за какво ли не, искам да си го направя на скрипт примерно "kolona 2" = awk '{print $2}'. Идеята ми беше за нещо такова: GeSHi (Bash): #!/bin/bash kolonanomer=$1 awk '{print $$kolonanomer}'
Разбира се този синтаксис е грешен, но не ми идва на ума, как да го направя. Който може, нека помогне.
|
|
|
12
|
Linux секция за начинаещи / Настройка на програми / Опростен изход от smartctl
|
-: Dec 29, 2017, 21:04
|
Здравейте, колеги. Написал съм си едно просто баш скриптче дето ми събира изхода от "smartctl" и ми изважда в три реда това, което ми трябва. https://github.com/makemegit/lazy-smartctl/blob/master/lazy-smartctlИзползва се:Вместо примерно smartctl -a /dev/sda пускате него ./lazy-smartctl -a /dev/sda. Би трябвало да върви на всяка модерна линукс система. Примери от изхода: Device: Seagate Constellation ES.3 - 7200 rpm - [1.00 TB] PowerOn Time: 2y 356d 4h Self-assessment test: PASSED Reallocated Sectors: 0 Temp: 30°C Device: SiliconMotion based SSDs - Solid State Device - [256 GB] PowerOn Time: 683 Days Total Reads: 2252.56 GB Total Writes: 5478.81 GB Self-assessment test: PASSED Reallocated Sectors: 0 Life: 99% Temp: 33°C Стойностите светват в червено, ако не ми харесват:) Та, върши си ми работа, но ми трябва малко фиидбек относно работата му на различни хардове/ссд-та. По специално дали това за което грепя, винаги е така (до колкото знам, различните СМАРТ контролери - репортват различно).Също така ще съм ви и много благодарен, ако кажете и за какво друго гледате в изхода от smartctl.Скрипта главно го използвам, когато ми дадат няколко стари (наемат се за последно и после отиват в коша) сървъри за да проверя състоянието на хардовете. Обикновено тези машини идват само с много стари хардове (първия изход от скрипта е от такъв, който е от добрите ) и аз ги проверявам дали ще могат да изкарат кат за последно Както знаете не съм програмист и скрипта съм го кърпил с времето, така че и предложения по кода също приемам. Идеята е да го направя по-гъвкав, че да не си губя времето да скролвам из изхода от smartctl (ако има смартЕрори е нещо страшно). ПП: Качил съм го в Гит понеже е около 150 реда, но ако искате ще го пейстна и тук. В случай, че не ви се занимава да го преглеждате, ще изброя нещата за които грепя, като се надявам поне да предложите и обсъдим допълнения: Model Family Rotation Rate Power_On_Hours Host_Reads_32MiB Host_Writes_32MiB Remaining_Lifetime_Perc overall-health Reallocated_Sector_Ct capacity error count Temperature_Celsius Current_Pending_Sector
Разбира се, ако го няма не го изважда.
|
|
|
13
|
Linux секция за напреднали / Начини за увеличаване на бързодействието / vfs_cache_pressure оптимизация
|
-: Dec 19, 2017, 15:36
|
Здравейте, колеги. Много ми се иска да разбера какво точно прави vfs_cache_pressure value. От стара тема тук във форума изнамерих: Controls the tendency of the kernel to reclaim the memory which is used for caching of directory and inode objects.
At the default value of vfs_cache_pressure=100 the kernel will attempt to reclaim dentries and inodes at a "fair" rate with respect to pagecache and swapcache reclaim. Decreasing vfs_cache_pressure causes the kernel to prefer to retain dentry and inode caches. When vfs_cache_pressure=0, the kernel will never reclaim dentries and inodes due to memory pressure and this can easily lead to out-of-memory conditions. Increasing vfs_cache_pressure beyond 100 causes the kernel to prefer to reclaim dentries and inodes. Превеждам си обяснението, но явно ми липсват знания на по-ниско ниво, за да разбера с какви цифри мога да си играя. Имам няколко въпроса, които мисля, че ще ме избистрят 1. Това проценти ли са, понеже виждам, че може да са и повече от 100. 2. Има ли някой, който при сетъп на система да е намерил оптимална стойност и за коя файлова система става въпрос? 3. При ровене из гугъл, гледам хората препоръчват по-ниска стойност при работа с ССД. Вашето мнение? 4. Кой каквато малко по-сдъвкана информация има, моля да сподели.
|
|
|
|