Category Archives: sadmin

sadmin

Архивиране и изтриване на файл с тире в GNU/Linux

На всеки би трябвало да му се е случвало да трябва да изтирва под GNU/Linux файлове започващи със "--".  Не можете обаче просто да си го мачнете и изтриете по нормалния начин "rm -fr --biba"

Решение: rm -fr ./--biba

Предполагам някои е искал да архивира със zip някой файл започващ със тире(-) и да не е успявал. т.е.

zip -r -example.zip -example.doc;

Извежда следната грешка: zip error: Invalid command arguments (no such option: -)

Решението е(като при изтриването):

zip -r ./-example.zip ./-example.doc;

PS: Всеки нормално занимаваш се с GNU/Linux трябва да се е сблъсквал с това и да го знае още в първия месец, но за тези които не знаят или не са се сблъсквали с този проблем този пост е именно за тях.

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Рекурсивно преименуване на файлове в GNU/Linux

Наложи ми се да конвертирам всички *.SH файлове в *.sh но тези файлове са в куп директории и под директории. Веднага ми доиде на ум как да го направя с find , но реших да гугълна да видя дали има по- рационално решение. Е не видях такова. Видях решения от рода на цикли с bash, perl и какво ли не, но решение с "one line" не видях.

Ето го моето решение:

find $PWD -name "*.SH" -exec rename 'y/.SH/.sh/' "{}" \;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Как да копираме това което ни е необходимо:) (cp GNU/Linux)

Във връзка с една предишна публикация за  "Как да намеря това което търся и това което НЕ търся (Find в GNU/Linux)" ми се наложи подобно нещо, но да копирам конкретни папки от една папка с много папки  такива(повечето са тези които ми трябват).

Ще разгледам конкретен случай в които имаме следните директории:

0папка1
0папка2
3папка3
4папка4
5папка5
6папка6
7папка7
8папка8

Аз искам да копирам всички папки с изключение на тези които започват с "0"(нула). Задачката-играчката има няколко решения:

1. Преместваме всичките 0*папка* на друго място и копираме всички останали папки * като след това връщаме папките с 0папка*.- Не рационално.

2. Копираме желаните папки като аргументи. Пример: cp 3папка3 4папка4 5папка5 … и т.н. -- Не рационално.

Ето го моето решение:

cp -Rvp [!0*]* destination_dir

Това ще копира всички папки с изключение на тези които започват с "0" (нула).- Рационален

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Инсталиране на TOR == Анонимност в Интернет

torВ тази публикация ще опиша с няколко стъпки как  се инсталира, конфигурира и ползва Tor в GNU/Linux- Debian. Идеята е криптиране на връзката която ползвате или да имате по- добра анонимност в Интернет. Приложението е възможно освен за GNU/Linux така и за MS Windows и OS X и BSD.

Статията е за напълно начинаещи с напълно основни познания по всичко :)(Просто се изпълнява подред и това е :) )

1. Редактиране на файл: /etc/apt/sources.list :
#За Etch
deb     http://deb.torproject.org/torproject.org etch main
#За Lenny
deb     http://deb.torproject.org/torproject.org lenny main
#и т.н.

2. Инсталиране на sudo
apt-get install sudo

3. Зареждане на ключове:

gpg --keyserver keys.gnupg.net --recv 886DDD89
gpg --export A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89 | sudo apt-key add --

4. Ъпдейтване и инсталиране на tor

apt-get update && apt-get install tor tor-geoipdb privoxy

5. Редактиране на конф. файл на provixy (/etc/privoxy/config)
Добавете това(по този начин пренасочваме tor порта към 8118:

#added by amri
forward-socks4a / localhost:9050 .

6. Рестартиране на tor и privoxy
/etc/init.d/tor restart;
/etc/init.d/privoxy restart;

7. Тестване за анонимност

7.1 Тест, чрез links
links -http-proxy 127.0.0.1:8118 http://check.torproject.org/

7.2  Тест, чрез lynx
export http_proxy="http://127.0.0.1:8118";
lynx http://check.torproject.org/;

#Бележка: Когато сетвате http_proxy това важи и за apt т.е. ако искате да инсталирате нещо през apt-get ще минете през това прокси. За да го премахнете премахнете променливата или: export http_proxy="

PS: За Firefox е повече от ясно как се въвежда всичко :)

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Прост Bash скрипт за създаване на mysql потребител и база

Ето едно просто скриптче което ще ви помогне лесно да създавате лесно MySQL потребител с неговата парола и едновременно създаване на база.

#!/bin/sh
mysqlpassword=$2;
mysqluser=$1;
mysqldb=$3;

if [ $# -eq 3 ]
then

echo "Create Database $mysqldb";
mysql -e "CREATE DATABASE $mysqldb" -p;
echo "Create user $mysqluser -- GranT all on db:$mysqldb";
mysql -e "GRANT ALL ON $mysqldb.* TO $mysqluser@localhost IDENTIFIED BY '$mysqlpassword' WITH GRANT OPTION;" -p
echo "Flush Privileges";
mysql -e "FLUSH PRIVILEGES;" -p;
echo "Create Table fsearch";
exit;
fi;
echo "$0 mysqluser mysqlpass mysqlDB";

Пример за ползване:
sh mysql_create_user.sh mysql_user mysql_pass mysql_db

PS: Потребителят които се създава има пълни права в/у базата

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Стартиране на soffice

Днес ми се наложи да пусна soffice заради едни журналисти които ползват терминална система за своите работни станции(X ползвам като сървър на една машина, а другите са просто терминали(това вече 4 години)). Днес реших и на нея да пусна soffice. Ето как инсталирах soffice:

1. Инсталиране на soffice:
apt-get install openoffice.org python-uno sun-java6-jre xvfb

2. Стартиране на fakeX(ако нямаш X инсталирано се ползва fakeX):

/bin/rm -Rf /tmp/.X25-lock
xavf_log='/tmp/a.log';
nohup /usr/X11R6/bin/Xvfb :99  >> $xavf_log 2>> $xavf_log &
soffice -headless -accept='socket,host=localhost,port=8100;urp' -nofirststartwizard -nologo -nolockcheck -display :99

3. Стартиране на soffice:
soffice -headless -accept='socket,host=localhost,port=8100;urp' -nofirststartwizard -nologo -nolockcheck -display :1001

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Хранилище за Sun-Java -- Debian Lenny

Ето ги и хранилищата за да си инсталирате Sun Java на вашата система :) :

deb http://ftp2.de.debian.org/debian/ lenny main non-free
deb-src http://ftp2.de.debian.org/debian/ lenny main non-free

deb http://security.debian.org/ lenny/updates main non-free
deb-src http://security.debian.org/ lenny/updates main non-free

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Как да намеря това което търся и това което НЕ търся (Find в GNU/Linux)

Всъщност тук идеята е да се листнат всички файлове с изключение на конкретни. Например да се листнат всички файлове с изключение на .doc файловете. Това не успях(говоря за стандартната търсачка) да го направя под Windows(просто за фън едвали щях да разчитам на него да го направи :) ).
Затова Ви препоръчвам ако ще правите това да го направите под GNU/Linux ;)

Задача: Да се изведат всички файлове които не са с разширение *.doc:
Решение: find $PWD -type f ! -name "*.doc"

Задача: Да се изтрият всички файлове с изключение на тези които не са с разширение *.doc:
Решение:  find $PWD -type f ! -name "*.doc" -exec rm -f {} \;

PS: Всяко нещо е просто до доказване на противното респективно, всяко нещо е сложно до доказване на противното

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Проблем със спирането на Windows Disk Protection

Един приятел искаше да преинсталира една машина и не успяваше и не успяваше и тогава ми донесе лаптопчето да го видя за какво иде реч. Е оказа се, че има активиран Windows Disk Protection които не позволява да се преинсталира.Междо другото машината не може да boot-не от CD/Floppy/Usb- не ми се обяснява. Гугълнах как се спира и видях, че доста хора са има същия проблем и затова реших да опиша как се спира Windows Disk Protection:

Спиране на Windows Disk Protection(създайте *.bat файл):

@echo off
: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
: Filename: SteadyState-DisableWDP.bat
:  Purpose: Disable Windows Disk Protection in Windows SteadyState 2.5
: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

echo.
echo SteadyState 2.5 introduced command line parameters that allows you to enable/disable WDP.
echo.
echo.
echo Ready to Disable Windows Disk Protection (WDP)
echo.
echo Press Ctrl-c to to cancel.
echo.

pause

rem "C:\Program Files\Windows SteadyState\SCTUI.exe" /EnableWDPAndReboot

"C:\Program Files\Windows SteadyState\SCTUI.exe" /DisableWDPAndReboot

Стартиране на Windows Disk Protection(създайте *.bat файл):

@echo off

: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
: Filename: SteadyState-EnableWDP.bat
:  Purpose: Enable Windows Disk Protection in Windows SteadyState 2.5
: = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

echo SteadyState 2.5 introduced command line parameters that allows you to enable/disable WDP.
echo.
echo.
echo Ready to Enable Windows Disk Protection (WDP)
echo.
echo Press Ctrl-c to to cancel.
echo.

pause

"C:\Program Files\Windows SteadyState\SCTUI.exe" /EnableWDPAndReboot

rem "C:\Program Files\Windows SteadyState\SCTUI.exe" /DisableWDPAndReboot

PS: Аман от тия бози, АМАН

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

Как да разделяме големите файлове под GNU/Linux

Всеки се е сблъсквал с голям файл които трябва да изпрати по пощата(примерно), но пощенската кутия която ползва позволява прикачения файл да бъде максимум 8 МБ. Ние имаме файл които е 12 MB и не можем да изпратим от първия път за целта трябва да го разделим на две част. Ето как става това под GNU/Linux :)

split -b 6M bigdhstudio.file

Или ако искаме да по различен начин(суфикс) да бъдат именувани разцепените парчета:

split -b 6M bigdhstudio.file bigdhstudio.part.

По този начин суфикса ще бъде "bigdhstudio.part.aa", "bigdhstudio.part.ab" вместо  "xaa", "xab" .. както ще бъде при по- горния пример.

Ако искаме суфикса да не бъдат букви, а цифри 1,2,3 тогава добавяме аргумента -d:

split -bd 6M bigdhstudio.file bigdhstudio.part.

По този начин суфикса ще бъде "bigdhstudio.part.00", "bigdhstudio.part.01"

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

cat `echo bigdhstudio.part.* | sort` > bigdhstudio_all

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)