2019. június 20., csütörtök

Gyorskeresés

Openindiana és a Transmission update

Írta: |

[ ÚJ BEJEGYZÉS ]

Kezdjük rögtön az elején egy pici magyarázkodással. A ZFS iránti érdeklődésem miatt kerültem újra közel a Transmission-hoz. A legutolsó írásomban nem valami fényesen szerepelt, de az egy internetes portálon történt szavazás végeredményét írtam le. Szóval a ZFS-ről most nem írok. A FreeBSD,Nexenta, és az Openindiana közül az utolsóba szagoltam bele. Azt nem tudom megígérni, hogy lesz ennek folytatása, mert igen gyenge a felhozatal a googliból. A profik mint tapasztaltam semmit nem segítenek. Az Ubuntu-nál
viszonylag könnyű a helyzet, mert ha elakadsz a googli megmondja a tutit, és itt jött az első meglepetésem az Openindiana-nál. Az rtorrentre panaszkodtak, hogy hibás. Maradt a transmission. Az ugye van pkg-ban is, de mint az Ubuntu-nál eléggé le vannak maradva. Akkor fordítsunk.Sehol egy leírás. Az IRC-n pedig csak kérdezgetik hogy lehet a legfrissebbet felrakni. Egy halovány reményt találtam, amit valószínűleg egy profi írt, mert nagyon elnagyolt volt, de legalább volt benne link, és ez alapján elkészült egy rövid script szerűség.
Így Openindiana-n a legfrissebb transmissivel tolhatjuk. Visszatérve a meglepetésre a script próbálgatásánál a compiler megállt egy hibaüzenettel, én dobok egy hátast, mert googli semmit nem hoz fel. No, mondom ennyi volt. Igazából csak az volt a baja, hogy a fordított programokat linkelni kell, hogy a kis bolond megtalálja. Csak azt linkeltem ami fáj neki. Nyilván lehetett volna rögtön a /usr/bin-be fordítani, de ez most csak szépséghiba ami igazából nem számít. Az automatikus indítás, és a multiuseres setup egy kicsit odébb lesz. Sok a homályos részlet. Talán majd egy Openindiana fórumon találok egy lelkes amatőrt aki majd segít. Az USB3.0 nem működik, és valószínű, hogy nem is fog. Bár Ubuntu alatt egyszer se próbáltam. A Samba sokkal jobban működik, mint az Ubuntu-n. Ez a ZFS mellet igen nagy pozitívum. A FreeNAS, Free4NAS is nagyon jó, de kész van minden benne, és az update macerás. Egyébként a Free4NAS szerintem egész jó. A régi FreeNAS-ra hasonlít, és gyakran frissítik.

Transmission update

Mai kornak megfelelően megnéztem egy VM-ben mi is az ami feltétlen kell. A régieket nem törölném még ha kusza is, mert mindig mutat valami kód használatot. Szóval itt az új, rövidebb verzió:

pkg set-publisher -p http://pkg.openindiana.org/sfe
pkg set-publisher -p http://pkg.openindiana.org/sfe-encumbered
pkg update -v
shutdown -y -i6 -g0
pkg install mc
pkg search build-essential
pkg install build-essential
pkg search transmission
pkg install transmission

Ma már a fordítás csak akkor kell ha lassúak az illumos/openindiana-nál.

wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.19.7.tar.gz
tar xvjf gettext-0.19.7.tar.gz
cd gettext-0.19.7
./configure
make
make install
cd
pkg search libevent
# INDEX ACTION VALUE PACKAGE
# basename dir usr/gnu/share/doc/libevent pkg:/sfe.openindiana.org/library/libevent@2.0.12-0.151.1
# pkg.fmri set sfe/sfe.openindiana.org/library/libevent pkg:/sfe.openindiana.org/library/libevent@2.0.12-0.151.1
pkg install pkg:/sfe.openindiana.org/library/libevent@2.0.12-0.151.1
#echo $PATH cmd for check.
export PATH=/usr/local/bin:/usr/sbin:/usr/bin
wget http://download.transmissionbt.com/files/transmission-2.92.tar.xz
gtar xf transmission-2.92.tar.xz
cd transmission-2.92
./configure
make
make install
ln -s /usr/local/bin/transmission-daemon /usr/bin/transmission-daemon

###################################################################

export PATH=/usr/local/bin:/usr/sbin:/usr/bin

A symlink hasznos, és így azt is megismertem. Mindenhol leírom, hogy kezdő vagyok. Így a "nem jó..." nem segít. Mivel a symlink-es rész eltűnik, így egy példát azért itt hagyok:

ln -s /mnt/samu/st.sh /home/brogyi/download
@st.sh

Az eredmény a download dir-ben ami szürke, vagy fehér színű az mc ernyőn.

ln -s 'amire mutat a link, valódi hely' 'nem létező, linkelt path,ahova kell'

Itt szeretnék egy kis kitérőt beletenni a Hipsterről. Az i217 LAN chip miatt kénytelen voltam átnyergelni, mert csak ebben volt benne a driver-e. Az OmniTI is tudja, de az nekem már nem tetszett. Az OI 151a9 szintén jó csak jelenleg update formába érhető el ami egy 22-es csapdája. Mivel nem megy a LAN így az updte se.
A Hipster [link-je]. A fejlesztői/fordítós környezet kialakítása egy picit más. A mérete engem nem érdekel, mert ezekkel működik a fordítás ami nagyon fontos. Valószínűleg a build-essential, és a sunstudio elég lenne.

pkg set-publisher -p http://pkg.openindiana.org/sfe
pkg set-publisher -p http://pkg.openindiana.org/sfe-encumbered
pkg set-publisher -p http://pkg.openindiana.org/dev/ ### ez nem fért bele.

pkg publisher ### kiírja jelen helyzetet.
pkg unset-publisher openindiana.org ### Először eltávolít.
### Az "openindiana.org" a PUBLISHER oszlopban van. Nem a web cím!
pkg set-publisher -p http://pkg.openindiana.org/hipster-2015 ### Majd az újat beír.

pkg update
sudo pkg install pkg:/metapackages/build-essential@1.0-2014.0.1.0
sudo pkg install sunstudio12u1
sudo pkg install pkg:/library/desktop/gtk1@1.2.10-0.151.1.8
sudo pkg install pkg:/library/java/java-gnome@2.30.0-0.151.1.8
sudo pkg install pkg://sfe/library/fribidi@0.19.2,5.11-0.151.1.5:20120805T091919Z

pkg info -r system/zones
pkg refresh --full
pkg update -nv ### "n" mint no action
# pkg install pkg:/package/pkg ### Hipster reklamálta.
pkg image-update

A script-et root-ként futtatod. A script.

./script_neve

#!/bin/sh
#Transmission update for Openindiana based on Abz's note.
# pkg install SUNWgcc
# as root, run 'updatedb' and then 'locate bin/gcc' - this should tell you whether you have the gcc binary
# installed.
pkg install gcc-dev ### ss-dev szintén nem tetszett a Hipster-nek.
pkg install compress/xz
wget http://pkgconfig.freedesktop.org/releases/pkg-config-0.28.tar.gz
tar xvjf pkg-config-0.28.tar.gz
cd pkg-config-0.28
./configure --with-internal-glib
make
make install
cd
wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar xvjf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure
make
make install
cd
wget http://curl.haxx.se/download/curl-7.29.0.tar.gz
tar xvjf curl-7.29.0.tar.gz
cd curl-7.29.0
./configure
make
make install
cd
wget http://ftp.acc.umu.se/pub/gnome/sources/intltool/0.40/intltool-0.40.6.tar.gz
tar xvjf intltool-0.40.6.tar.gz
cd intltool-0.40.6
./configure
make
make install
cd
wget http://ftp.gnu.org/pub/gnu/gettext/gettext-0.18.1.1.tar.gz
tar xvjf gettext-0.18.1.1.tar.gz
cd gettext-0.18.1.1***A 18.2-es gettext bugos!
./configure
make
make install
cd
#echo $PATH cmd for check.
export PATH=/usr/local/bin:/usr/sbin:/usr/bin
wget http://download.transmissionbt.com/files/transmission-2.84.tar.xz
gtar xf transmission-2.84.tar.xz
cd transmission-2.84
./configure
make
make install
ln -s /usr/local/bin/transmission-daemon /usr/bin/transmission-daemon
echo "If everything is fine, our transmission binaries will located in /usr/local/bin"

exit 0

A fordítás ideje kb. 20 perc egy E-350-en.

Transmission Daemon elérése kivülről

Ez természetesen daemon, és Első András barátunk programja szenzációsan feldobja ezt a puritán transmisit. [link]
[Itt] pedig egy érdekes script ami fut linuxon, és Oi-n is. Futathatóvá teszed, futatod, és kész.
Nagyon megéri.
Amikor futatod a scriptet állítsd le a szolgáltatás, vagy indítsd újra ha elfelejtetted megtenni, mert nem fogsz különbséget látni az IP:9091-es oldalon.

Energia takarékosság

A power managment-en állítunk, mert alapból csak a magokat kapcsolja le/fel. Először nézzük meg, hogy mi a lehetőségünk, és a rendszer használja-e.

kstat -p cpu_info:::supported_frequencies_Hz
kstat -p cpu_info:::current_clock_Hz

Nálam egyetlen pici módosítás elég volt az /etc/power.conf-on. Keresd meg a "cpupm enable" sort, majd alakítsd át a következőre:

cpupm enable poll-mode

Az újraindítás az biztos segít az új beállítások érvényesítésében, az ellenőrző parancsokkal meggyőzödhetsz a működésről.

ntp beállítás

cp /etc/inet/ntp.client /etc/inet/ntp.conf
nano /etc/inet/ntp.conf

Illeszt be a végére a következő sorokat (ma már talán ez se kell):

server 0.hu.pool.ntp.org iburst
server 1.hu.pool.ntp.org iburst
server 2.hu.pool.ntp.org iburst
server 3.hu.pool.ntp.org iburst

Tegyél # jelet a következő sor elé:server server_name iburst

svcadm enable ntp
svcs ntp
svcs -x ntp
ntpq -p

Multiuser-es setup

Automatikus indítás, vagy szerviz létrehozása egy kicsit rémisztő először, de meglátjuk bazi egyszerű. A gondolatmenet rendkívül hasonló mint az Ubuntunál. Linux userek létrehozása a megfelelő group-okban. Itt "staff" lett kiválasztva a család miatt. A profik meg választhatnak "other"-szt vagy amit akarnak. Egy script , és egy xml file lesz felhasználva amiket a végén berakok, mert módosítva lettek. Root, vagy sudoer tulajdonságokkal rendelkező egyénnek külön user-et kell készíteni. Nekik ne készíts transmission szolgáltatást. Valószínűleg lehet, de azt próbálgasd magad.
A kódok:

useradd -D -b /export/home -g staff
useradd -m joe
passwd joe### És így tovább...

Itt be kell lépni joe-val majd elindítani a trnsmission-t kézzel, és így létrehozza a konfigurációs file-t pontosan úgy mint a linuxban.

/export/home/joe/.config/transmisssion-daemon/settings.json### A legfontosabb file.
nano /lib/svc/method/transmission-daemon### Itt a script-et létrehozod.
### touch /lib/svc/method/transmission-daemon ### Másik lehetőség.
chmod a+x /lib/svc/method/transmission-daemon### Futathatóvá teszed.
chown root:bin /lib/svc/method/transmission-daemon### Script. Nem módosítottam.

A tulajdonost módosítsd a xml file-ban!

nano transmission-joe.xml
svccfg import -V transmission-joe.xml### Ez már módosított a felhasználók szerint.
#svccfg delete transmission-joe### A szolgáltatás törlése véglegesen. Ha kellene.
svcadm enable transmission-joe### Engedélyezés. "disable", "restart" lehetőséged is van még.
svcs -x transmission-joe### Információ a szolgáltatásról.

Transmission-joe az xml, és a "joe" jelezné a tulajdonost.
A következő sorokat kell csak kijavítani. Pl. "joe" helyére "pistikét" írsz.

<service_bundle type='manifest' name='transmission-joe'>
name='application/transmission-joe'
<method_credential user='joe' group='staff' />

#****Transmission-daemon script****#

#!/bin/sh

. /lib/svc/share/smf_include.sh

# ----- *ADVANCED* CONFIGURATION -----
# Only change these options if you know what you are doing!
#
# The folder where Transmission stores the config & web files.
# ONLY change this you have it at a non-default location
#TRANSMISSION_HOME="/var/transmission"
#TRANSMISSION_WEB_HOME="/usr/local/share/"
#
# The arguments passed on to transmission-daemon.
# ONLY change this you need to, otherwise use the
# settings file as per above.
#TRANSMISSION_ARGS=""


# ----- END OF CONFIGURATION -----

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
NAME=transmission-daemon
DAEMON=`which ${NAME}`

# Exit if the package is not installed
[ -x "${DAEMON}" ] || exit $SMF_EXIT_ERR_FATAL

#
# Function that starts the daemon/service
#

do_start()
{
# Export the configuration/web directory, if set
if [ -n "$TRANSMISSION_HOME" ]; then
export TRANSMISSION_HOME
fi
if [ -n "$TRANSMISSION_WEB_HOME" ]; then
export TRANSMISSION_WEB_HOME
fi

${DAEMON} ${TRANSMISSION_ARGS}
}

#
# Function that stops the daemon/service
#
do_stop()
{
pkill -9 transmission
}

case "$1" in
start)
do_start
;;
stop)
do_stop
;;
refresh)
do_stop
do_start
;;
*)
echo "Usage: ${0} {start|stop|refresh}" >&2
exit $SMF_EXIT_ERR_FATAL
;;
esac

exit $SMF_EXIT_OK

#****Transmission-joe.xml****#

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">

<service_bundle type='manifest' name='transmission-joe'>

<service
name='application/transmission-joe'
type='service'
version='1'>

<!-- Wait for network interfaces to be initialized. -->
<dependency
name='network'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/milestone/network:default' />
</dependency>

<!-- Wait for all local filesystems to be mounted. -->
<dependency
name='filesystem-local'
grouping='require_all'
restart_on='none'
type='service'>
<service_fmri value='svc:/system/filesystem/local:default' />
</dependency>

<exec_method
type='method'
name='start'
exec='/lib/svc/method/transmission-daemon start'
timeout_seconds='60' />

<exec_method
type='method'
name='stop'
exec=':kill -9'
timeout_seconds='60' />

<!--
Both action_authorization and value_authorization are needed
to allow the framework general/enabled property to be changed
when performing action (enable, disable, etc) on the service.
-->
<property_group name='general' type='framework'>
<propval name='value_authorization' type='astring'
value='solaris.smf.value.transmission' />
<propval name='action_authorization' type='astring'
value='solaris.smf.manage.transmission' />
</property_group>

<property_group name='startd' type='framework'>
<!-- sub-process core dumps shouldn't restart session -->
<propval name='ignore_error' type='astring'
value='core,signal' />
</property_group>

<instance name='default' enabled='false'>

<method_context>
<method_credential user='joe' group='staff' />
</method_context>

</instance>

<stability value='Evolving' />

<template>
<common_name>
<loctext xml:lang='C'>
Transmission BitTorrent Client (Daemon)
</loctext>
</common_name>
<documentation>
<manpage title='transmission-daemon' section='1' />
<doc_link name='www.transmissionbt.org'
uri='http://www.transmissionbt.org' />
</documentation>
</template>

</service>

</service_bundle>

Smartmontools

Mindenki tudja mire való, így csak beillesztem a kódokat.

wget https://sourceforge.net/projects/smartmontools/files/smartmontools/6.6/smartmontools-6.6.tar.gz
tar xvjf smartmontools-6.6.tar.gz
cd smartmontools-6.6
./configure
make
make install

Ez volt a fordítás.

vi /var/svc/manifest/site/smartd.xml ### xml

Esetleg ez könnyebb:
touch /var/svc/manifest/site/smartd.xml
nano /var/svc/manifest/site/smartd.xml

*******************xml*******************

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="manifest" name="smartd">
<service
name="site/smartd"
type="service"
version="1">
<single_instance/>
<dependency
name="filesystem-local"
grouping="require_all"
restart_on="none"
type="service">
<service_fmri value="svc:/system/filesystem/local:default"/>
</dependency>
<exec_method
type="method"
name="start"
exec="/usr/local/etc/init.d/smartd start"
timeout_seconds="60">
<method_context>
<method_credential user="root" group="root"/>
</method_context>
</exec_method>
<exec_method
type="method"
name="stop"
exec="/usr/local/etc/init.d/smartd stop"
timeout_seconds="60">
</exec_method>
<instance name="default" enabled="true"/>
<stability value="Unstable"/>
<template>
<common_name>
<loctext xml:lang="C">
SMART monitoring service (smartd)
</loctext>
</common_name>
<documentation>
<manpage title="smartd" section="1M" manpath="/usr/local/share/man"/>
</documentation>
</template>
</service>
</service_bundle>

A service létrehozása:

ln -s /usr/local/sbin/smartd /usr/sbin/smartd
pfexec smartd -q onecheck
svccfg -v import /var/svc/manifest/site/smartd.xml
pfexec svcadm enable smartd
svcs -x smartd
pfexec /usr/local/sbin/update-smart-drivedb### adatbázis frissítés.

Végül ha kézzel, parancssorból akarunk valamit.

ln -s /usr/local/sbin/smartctl /usr/sbin/smartctl
smartctl -a -d sat,12 /dev/rdsk/c4t1d0***minden egybe.
smartctl -i -d sat,12 /dev/rdsk/c4t1d0***info a drive-ról.
smartctl -H -d sat,12 /dev/rdsk/c4t1d0***health rövid jó vs rossz válasz.
smartctl -c -d sat,12 /dev/rdsk/c4t1d0***capability
smartctl -A -d sat,12 /dev/rdsk/c4t1d0***atributum
smartctl -t short -d sat,12 /dev/rdsk/c4t1d0***teszt
smartctl -l selftest -d sat,12 /dev/rdsk/c4t1d0***teszt eredmény megnézése.

Samsung SSD okosság

[Script.] Kis átalakítással simán megy mint a smart.

$ chmod a+x samsung_ssd_get_lifetime_writes.bash
$ ./samsung_ssd_get_lifetime_writes.bash

Az eredménye

brogyi@hipster:~$ ./samsung_ssd_get_lifetime_writes.bash
Password:
------------------------------
SSD Status: /dev/rdsk/c8t5002538043584D30d0p1
------------------------------
On time: 5,465 hr
------------------------------
Data written:
MB: 16,294,323.024
GB: 15,912.424
TB: 15.539
------------------------------
Mean write rate:
MB/hr: 2,981.577
------------------------------
Drive health: 89 %
------------------------------

Közismert smart hiba

199 UDMA_CRC_Error_Count

Normál esetben ez mindig 0. Ha ettől eltér mindig először cserélj SATA kábelt. Ha lehet más gyártót, márkát
használj.

Egy rövid kis tapasztalat a telepítéshez.

A transmission-daemon script jól megviccelt. Látszólag két azonos script volt, de az egyik nem futott. Hosszú kínlódás után kiderült, hogy se a hossza , se a kód nem stimmelt. Szövegszerkesztőben látszólag két egyforma script volt. Hexa-ba kellett megnézni. Ott már volt különbség. A Notepad++ UNIX kódként felismerte a jót, csak eddig nem néztem. A jó mérete pedig 1317.
A hibaüzet valahogy így nézett ki:
bad interpreter: No such file or directory
/sbin/sh[1]: exec: /lib/svc/method/transmission-daemon: not found
Method "start" exited with status 127

,és ha jó:

Executing start method ("/lib/svc/method/transmission-daemon start")
Method "start" exited with status 0

Notepad++ trükkök a fenti hibához

-Edit --> EOL Conversion --> UNIX/OSX Format
-Settings->Preferences->New Document->Format Lline ending)
select the format as UNIX/OSX and close.
Nekem a második tetszett. Tisztán látszik hogy a "Line Ending" a probléma.

Költözéshez

cp vagy copy helyett a következő kód javasolt:

rsync -rtvz /nasi/joe/ joe@192.168.1.101:/nasi/joe/

Kereséshez

find / -type d -name "web" 2> /dev/null

Hozzászólások

(#1) bambano


bambano
(Jómunkásember)

linkelgetés helyett fel szokták venni a keresési útvonalba a /usr/local/bin-t.
ha ez kevés, akkor a linker keresési útvonalába is.
a logikai link az /user/local/bin-ből az /usr/bin-be elég igénytelen megoldás.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#2) Brogyi válasza bambano (#1) üzenetére


Brogyi
(senior tag)

Nagyon jó ötlet, csak még nem tudom melyik file-be szúrjam bele a path. Esetleg nem tudod melyiket módosítsam?Nem örültem én se a sok symlink-nek.Meg fogom nézni.

(#3) bambano válasza Brogyi (#2) üzenetére


bambano
(Jómunkásember)

/etc/profile szokott lenni sh utód shelleknél.
ez valami solaris utód? rég volt dolgom olyannal.

lezso6 szerint a user: rossz számtech karmája van | @netik: There is no Internet of Things. There are only many unpatched, vulnerable small computers on the Internet.

(#4) Brogyi válasza bambano (#3) üzenetére


Brogyi
(senior tag)

Bizony ez egy solaris utód.

(#5) Brogyi válasza Brogyi (#4) üzenetére


Brogyi
(senior tag)

Megtaláltam.Majd kijavítom,de most nem látok ki a fejemből.

További hozzászólások megtekintése...
Copyright © 2000-2019 PROHARDVER Informatikai Kft.