Linuxguider

Samba Server

I din linuxapparat

sudo apt install samba
chmod 1777 /media/usb

Svara Ja på frågan om att ändra smb.conf till att använda WINS-inställningar från DHCP.

sudo groupadd sambashare
sudo useradd -M -s /sbin/nologin joakim
sudo passwd joakim
sudo smbpasswd -a joakim
sudo smbpasswd -e joakim

sudo usermod -aG sambashare joakim

Upprepa ovanstående för alla de användare som skall ha tillträde.

sudo chgrp -R sambashare /media/usb (den här tar en stund)
sudo chmod 2770 /media/usb

Ändra default smb.conf så att följande rader finns i global-sektionen och lägg till sektionerna för NAS och filhistorik i slutet av filen.

sudo nano /etc/samba/smb.conf

[global]
workgroup = HUMLAN
server min protocol = SMB2
client min protocol = SMB2
client max protocol = SMB3
server role = standalone server
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
pam password change = yes
security = user
map to guest = bad user

[NAS]
Comment = NAS
Path = /media/usb/docs
Browseable = yes
Writeable = Yes
read only = no
guest ok = no
force create mode = 0660
force directory mode = 2770
force group = sambashare

[filhistorik]
Comment = Windows 11 Filhistorik
Path = /media/usb/filhistorik
Browseable = yes
Writeable = Yes
read only = no
guest ok = no
force create mode = 0660
force directory mode = 2770
force group = sambashare

Starta om Samba så att ändringarna i config slår igenom:
sudo service smbd restart

I din windowsapparat

Koppla sedan upp platserna i Windows med Anslut nätverksenhet i Utforskaren. Ange //192.168.1.105/nas som mapp, kryssa i både återanslutning och andra autentiseringsuppgifter (det sistnämnda är de uppgifter du angett ovan här).

Gå till Filhistorik i Kontrollpanelen, Lägg till enheter och ange //192.168.1.105/filhistorik som plats.

Testa med:
smbclient -U sambaman //192.168.1.105/nas
testparm -s

https://wiki.samba.org/index.php/Setting_up_Samba_as_a_Standalone_Server
https://www.raspberrypi.org/magpi/samba-file-server/

NFS Server

Den här funkar utmärkt på en RPi med en redan kopplad disk mot anslutningspunkten /media/usb. Om man ansluter denna server till en windowsmaskin så kommer skandinaviska tecken inte att funka, vilket gör den ganska oanvändbar, tyvärr.

Installera servern med: sudo apt install nfs-kernel-server -y.

Piffa till rättigheterna på disken med följande, vilket kommer att ta en bra stund att slutföra:

sudo chown -R pi:pi /media/usb
sudo find /media/usb/ -type d -exec chmod 755 {} \;
sudo find /media/usb/ -type f -exec chmod 644 {} \;

Redigera exports och peka ut de IP-adresser som har tillträde till servern:

sudo nano /etc/exports
/media/usb 192.168.1.112(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
/media/usb 192.168.1.113(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
/media/usb 192.168.1.136(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
/media/usb 192.168.1.137(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
/media/usb 192.168.1.138(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
/media/usb 192.168.1.139(rw,all_squash,insecure,async,no_subtree_check,anonuid=1000,anongid=1000)
sudo exportfs -ra

Klart! Du kanske kan starta om din servermaskin, kan inte skada.

Gå över till din windowsmaskin, öppna Utforskaren och anslut nätverksplatsen \\192.168.1.105\media\usb\docs. Öppna Filhistorik och koppla in platsen \\192.168.1.105\media\usb\filhistorik.

Källor:
https://pimylifeup.com/raspberry-pi-nfs/
https://help.ubuntu.com/community/SettingUpNFSHowTo

Alternativ uppkoppling via konsolen.

Utgår ifrån att ditt NFS-share är uppsatt och klart, då med rättigheter satta mot klienters IP-adresser eller på annat sätt.

Börja med aktivera NFS-klienten i Windows, denna återfinns i Kontrollpanelen -> Program -> Aktivera eller inaktivera Windows-funktioner. Bläddra ner i listan och kryssa för ”Tjänster för NFS”.

Öppna sedan en kommandotolk i Windows och montera ditt NFS-share, vilket kan se ut så här:

mount -o anon \\192.168.1.107\volume1\N32 N:

Klart! Enheten finns nu i Utforskaren, även efter omstart.

Se även:

https://graspingtech.com/mount-nfs-share-windows-10/

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754350%28v%3dws.10%29

Ubuntu Server

Följ dessa steg för att göra i ordning en Ubuntu Server med LAMP, SSH och Samba. Guiden utgår från Ubuntu 17.10.1.

Skapa installationsmedia

Hämta installationsmedia som ISO-avbildning (välj 32-bitars för HP SFF d530), för över till USB-sticka.

Från Windows sker överföringen enklast via balena Etcher eller Win32 Disk Imager. Starta programmet, peka ut ISO och USB-stickan, tryck sedan på Write-knappen.

Från Linux börjar man med att avmontera stickan sudo umount /dev/sdb1. Kopiera sedan över innehållet från ISO till sticka med sudo dd if=/path/to/file.iso of=/dev/sdb bs=1M.

Installera Ubuntu

Koppla in tangentbord, nätverkssladd och monitor i maskinen och boota upp på stickan (oftast F12, F2 eller Esc. På HP SFF d530 råkar det vara F9).

  • Välj Sverige och allt svenskt
  • Ange ett värdnamn, till exempel d530
  • Skapa ett användarkonto
  • Kryptera inte hemkatalogen
  • Avmontera alla tidigare monterade partitioner
  • Hela disken guidad
  • Lämna proxy tomt
  • Inga automatiska uppdateringar
  • Installera följande paket:
    • LAMP-server
    • Samba-server
    • OpenSSH-server
  • Ange lösenord för MySQL rotanvändare
  • Installera GRUB i huvudstartsektorn på /dev/sda

Koppla ur stickan, starta om, logga in med den nya användaren. Gör sedan följande:

  • sudo nano /etc/apt/apt.conf.d/99force-ipv4
  • Skriv följande i filen: Acquire::ForceIPv4 "true";
  • sudo apt update
  • sudo apt upgrade
  • Om du vill ge root ett pw, kör följande: sudo passwd root.
  • sudo apt install phpmyadmin
  • sudo apt install phpsysinfo

Om du har en 32-bitars maskin är den sista ubuntu-ISO:n som går att installera från version 17.10.1, senare versioner finns bara i 64-bitars ISO. Men du kan uppgradera till senaste version från kommandoraden med do-release-upgrade. Passa på att göra det nu när maskinen ändå är uppkopplad med skärm och tangentbord.

Från denna punkt kan du välja att koppla bort monitor och tangentbord och starta servern headless. Innan du tar bort monitor och tangentbord måste du först stänga av maskinen med: sudo shutdown -h now.

Källa: https://unix.stackexchange.com/questions/9940/convince-apt-get-not-to-use-ipv6-method

Rättigheter i Apache

sudo adduser kimbo www-data
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R g+rw /var/www/html

Länkar

Ubuntu på sticka
Ubuntu root pw
Apache MySQL PHP
Apache2 och PHP7.0
Apache rättigheter

Konfigurera MySQL

Starta MySQL-tolken med: mysql -u root. Om du redan satt pw för root blir det denna istället: mysql -u root -p.

Inne i MySQL-tolken skapas databas, användare och tilldelas MySQL root-lösenord med:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('rootpassword');
CREATE DATABASE kimbo;
GRANT ALL PRIVILEGES ON *.* TO 'kimbo'@'localhost' IDENTIFIED BY 'kimbopassword' WITH GRANT OPTION;

Gå ur MySQL-tolken med: \q

MySQL åtkomlig från nätverket

Öppna SSH-anslutning med terminalen till servern ifråga och kommentera bort fältet bind-adress i my.cnf enligt följande:

ssh 192.168.1.240
sudo nano /etc/mysql/my.cnf

Om du vill testa denna anslutning från en annan maskin på nätverket måste denna användare skapas och ges rättigheter. Gå till phpmyadmin eller gör det i mysql terminal:


create user 'kimbo'@'SP2' identified by 'kimbo';
grant select, insert, update, delete on kimbo.* to 'kimbo'@'SP2' identified by 'kimbo';

Testa anslutning med följande php:


<?php
try {
$dsn = "mysql:host=192.168.1.240;port=3306;dbname=kimbo";
$db = new PDO($dsn, "kimbo", "kimbo");
$db = null;
} catch (PDOException $e) {
print "Anslutning till DB kraschade med: " . $e->getMessage() . "<br/>";
die();
}
?>

http://stackoverflow.com/questions/1420839/cant-connect-to-mysql-server-error-111

http://stackoverflow.com/questions/2482234/how-to-know-mysql-my-cnf-location

Debian Server

I huvudsak lika med Ubuntu Server, fördelen med Debian är att det fortfarande finns 32-bitars distro tillgänglig.

Efter installation av Debian installeras en LAMP-stack enligt följande:

Notera: Konfigurera såsom Ubuntu server före start av phpmyadmin

Python

https://www.cyberciti.biz/faq/debian-linux-install-gnu-gcc-compiler/

https://idroot.us/install-python-3-7-debian-9-stretch/

Notera: Sök upp senaste utgåvan av python (https://www.python.org/downloads/source/) och ersätt med. Sudo på allt.

RPi som NAS

Börja med att preparera ett SD-kort med lämpligt operativsystem, koppla sedan in skärm, tangentbord, nätverkssladd, SD-kort och slutligen ström i din RPi. Logga in med default pi/raspberry och starta sedan sudo raspi-config.

  • Uppdatera raspi-config
  • Välj in SSH-server
  • Välj Sverige och allt svenskt
  • Ange ett värdnamn, till exempel nas
  • Expandera lagring på SD-kortet
  • Boot Options: B1 Desktop / CLI: B1 Console
  • Välj eget lösenord för användaren pi

sudo reboot
sudo useradd -m kimbo
sudo passwd mypassword
sudo adduser kimbo sudo
sudo reboot

Logga in som kimbo
sudo raspi-config
Gå till Boot Options, men välj istället B2 Console Autologin (som kimbo)

Stäng ner RPi: sudo shutdown -h now

Koppla in RPi headless och öppna en terminal mot RPi:
ssh kimbo@192.168.1.105

Tvinga bort eventuell IPv6 med:
sudo nano /etc/apt/apt.conf.d/99force-ipv4
Skriv följande i filen:
Acquire::ForceIPv4 "true";
Spara och stäng.
Uppdatera din RPI med:
sudo apt update && sudo apt upgrade

Anslut en NTFS-disk

sudo apt install ntfs-3g (behövs inte längre, verkar ingå i Raspbian Buster)

Koppla in din USB-disk och kolla vad den får för beteckning med: sudo fdisk -l. Troligen står det /dev/sda1 på sista raden.

Skapa en monteringspunkt för din NAS-disk:
sudo mkdir /media/usb
sudo chown pi:pi /media/usb
Se till att NAS-disken monteras mot monteringspunkten vid uppstart:
sudo nano /etc/fstab
Lägg till följande rad sist i filen:
/dev/sda1 /media/usb ntfs-3g rw,default 0 0
Starta om: sudo reboot

Kolla om du ser roten på din USB-disk med: ls -a /media/usb

https://www.raspberrypi.org/forums/viewtopic.php?t=104681

Razberry på RPi

Om du vill sätta upp en Razberry från Z-Wave.Me med en RPi på Raspbian Stretch gör du så här:

Installera stretch enligt andra guider, kom ihåg att koppla in GPIO i raspi-config.

Installera Z-Way-servern från SSH-terminalen:
wget -q -O - support.zwave.eu/libs | sudo bash
wget -q -O - razberry.z-wave.me/install | sudo bash

Källa: https://forum.z-wave.me/viewtopic.php?f=3419&t=28787#p76511

kolla sedan om servern är igång med:

systemctl status z-way-server

sudo reboot

Anslut lokalt med 192.168.X.YYY:8083

Anteckna ditt smart home id från skärmen
Ge användaren admin ett pw och fortsätt

Du kommer sedan till ett välkommenfönster:
http://192.168.X.YYY:8083/smarthome/#/dashboard/firstlogin
Med följande text:

Welcome to your Smart Home
This interface allows managing your Smart Home equipped with interconnected Z-Wave devices. It will show every function of the device as one single Element (In case a physical device has multiple functions like switching and metering – it will generate multiple elements). All elements are listed in the Element View and can be filtered by function type (switch, dimmer, sensor) or other filtering criteria.

Each Element has an Element Configuration Dialog to rename it or to hide it in case was created but it is not needed. Important elements can be marked to be shown in the Dashboard. Additionally the elements can be grouped into rooms.

Every change of a sensor value or a switching status is called an Event and is shown in the Timeline. Filtering allows monitoring the changes of one single function or device.

All other functions such as time triggered actions, the use of information from the Internet, scenes plugin of other technologies and service are realized in Apps. These apps can create none, one or multiple new elements and events. The menu
allows downloading, activating and configuring your Apps.

pywws på RPi

Underhåll och kontroll

Här följer ett axplock av kommandon att använda vid normalt UH av din pywws:
cat /var/log/kimbo/pywws.log
service pywws status
cat weather/data/status.ini
python3 -m pywws.version
sudo pip3 install -U pywws --pre
gnuplot -V


Följande två kommandon kommer troligen att störa din USB-port och tvinga pywws-tjänsten att starta om:
pywws-testweatherstation
pywws-livelog -vvv ~/weather/data

För att manuellt exekvera ett eller flera av textmallarna körs följande kommandon:

python3 -m pywws.template /home/kimbo/weather/data/ /home/kimbo/weather/templates/6hrs.txt /home/kimbo/weather/tmp/output/6hrs.txt

python3 -m pywws.template /home/kimbo/weather/data/ /home/kimbo/weather/templates/24hrs.txt /home/kimbo/weather/tmp/output/24hrs.txt

python3 -m pywws.template /home/kimbo/weather/data/ /home/kimbo/weather/templates/7days.txt /home/kimbo/weather/tmp/output/7days.txt

python3 -m pywws.template /home/kimbo/weather/data/ /home/kimbo/weather/templates/allmonths.txt /home/kimbo/weather/tmp/output/allmonths.txt

För att överföra resultatfilerna till den webbplats där de gör nytta, måste FTP-tjänsten startas manuellt:

python3 -m pywws.service.ftp /home/kimbo/weather/data/ /home/kimbo/weather/tmp/output/6hrs.txt

python3 -m pywws.service.ftp /home/kimbo/weather/data/ /home/kimbo/weather/tmp/output/24hrs.txt

python3 -m pywws.service.ftp /home/kimbo/weather/data/ /home/kimbo/weather/tmp/output/7days.txt

python3 -m pywws.service.ftp /home/kimbo/weather/data/ /home/kimbo/weather/tmp/output/allmonths.txt

På motsvarande sätt skapar och skickar du en plot:

python3 -m pywws.plot /home/kimbo/weather/data/ /home/kimbo/weather/tmp/ /home/kimbo/weather/graph_templates/2019.png.xml /home/kimbo/weather/tmp/output/2019.png

python3 -m pywws.service.ftp /home/kimbo/weather/data/ /home/kimbo/weather/tmp/output/2019.png

Installation

Om du uppgraderar från en befintlig installation av pywws behöver du spara undan gamla väderdata och inställningsfiler. Starta en FTP-klient, logga in i din RPi och spara ner allt under mappen kimbo/weather. Kom ihåg att det är smakfullt om FTP-klienten bevarar de ursprungliga tidsstämplarna på de sparade filerna.

Börja med att få igång din RPi såsom beskrivs i guiden för NAS på en RPi. Öppna sedan en terminal och installera följande beroenden:

sudo apt install python3-pip
sudo apt install gnuplot
pip3 install --upgrade pip
pip3 install libusb1
pip3 install pyusb --pre
pip3 install python-daemon
pip3 install requests
pip3 install pywws --pre

https://groups.google.com/d/msg/pywws/tAL-v-9UxLQ/13kxu7mLbXcJ

https://pywws.readthedocs.io/en/latest/essentials/dependencies.html

Skapa kataloger för dina väderdata:

mkdir ~/weather
mkdir ~/weather/data
mkdir ~/weather/tmp

Kopiera över mapparna ”modules”, ”graph_templates” och ”templates” med innehåll till mappen ”weather” med en FTP-klient. Kopiera över mappen ”raw” med innehåll samt filerna ”status.ini” och ”weather.ini” till mappen ”data”.

Kör Reprocess (det här tar en stund, typ en dryg timme för sex års data på en RPi 2, eller 14 minuter på en RPi 4 med samma datamängd).

python3 -m pywws.reprocess -v ~/weather/data

USB-porten

Låt USB-porten bli åtkomlig för användaren kimbo:
sudo nano /etc/udev/rules.d/39-weather-station.rules
Med följande innehåll:
SUBSYSTEM=="usb" \
, ATTRS{idVendor}=="1941" \
, ATTRS{idProduct}=="8021" \
, OWNER="kimbo" \
, TAG+="systemd" \
, ENV{SYSTEMD_WANTS}="pywws.service"

Starta pywws livelogging vid uppstart

sudo nano /etc/systemd/system/pywws.service

Lägg till följande rader:

[Unit]
Description=pywws weather station live logging
After=time-sync.target

[Service]
Type=simple
User=kimbo
Restart=on-failure
ExecStart=/usr/local/bin/pywws-livelog -v -l systemd /home/kimbo/weather/data/
PermissionsStartOnly=true
ExecStartPre=/bin/mkdir -p /var/log/kimbo
ExecStartPre=/bin/chown -R kimbo:nogroup /var/log/kimbo/
ExecStart=/usr/local/bin/pywws-livelog -v -l /var/log/kimbo/pywws.log /home/kimbo/weather/data/

https://pywws.readthedocs.io/en/latest/guides/livelogging.html#run-in-the-background

Backup av Ubuntu server

Server->Server

Gör så här för att rsync-backup av ditt samba-share i Ubuntu server till ett motsvarande share i en annan Ubuntu server:

Öppna först en terminal i källservern. Följande kommando kommer att säkerhetskopiera allt innehåll och undermappar i katalogen /srv/samba/bimbokosmos till katalogen /srv/samba/optiplex/ på servern på IP-adress 108, rotkatalogerna bimbokosmos och optiplex kommer inte att röras. Användaren sambauser används som force user och behöver bara ha ett lösenord.

rsync --delete -arv -e ssh /srv/samba/bimbokosmos/ sambauser@192.168.1.108:/srv/samba/optiplex/

https://www.techrepublic.com/article/how-to-back-up-over-a-network-using-rsync/

http://www.comentum.com/rsync.html

Server->USB

Gör så här för att göra rsync-backup av ditt samba-share i Ubuntu server till en extern disk:

  1. Anslut fysiskt en extern hårddisk till en USB-port på servern.
  2. Öppna en terminal mot servern. Kolla att disken är synlig på servern lsblk. Kolla sedan vilken typ enheten är sudo lshw.
  3. Montera den externa disken genom att köra följande:
    sh mount-usb.sh
  4. Kontrollera sedan att disken har hamnat rätt med df -h, du skall hitta disken på /dev/sdb1 och monterat på /media/usb
  5. Kör sedan backup med:
    sh backup-usb.sh
  6. När backupen är klar avmonteras disken med:
    sh umount-usb.sh
  7. Kontrollera att disken är avmonterad genom att köra df -h igen, /dev/sdb1 skall inte längre synas i listan.
  8. Nu kan du koppla bort den fysiska disken från USB-porten på serven.

Så här ser de tre skripten ut:

USB->Server

Följ proceduren för Server->USB, men ersätt skriptet backup-usb med restore-usb. Processen kommer att ta flera timmar att slutföra. När processen är klar ligger filerna under mappen bimbokosmos/storage/bimbokosmos, vilket är tokigt, de skall ju ligga direkt under bimbokosmos, dessutom ägs filerna av root. Öppna en terminal och kör

sudo chown -R sambauser /srv/samba/bimbokosmos

ägarskapet återställs därmed, använd sedan Windows Utforskare eller liknande och flytta filerna till önskad plats, sedan kan mappen storage raderas.

mount-usb.sh

#!/bin/bash

#sudo  mkdir /media/usb
sudo mount /dev/sdb1 /media/usb

backup-usb.sh

#!/bin/bash

sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded /srv/samba/bimbokosmos /media/usb/storage

sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded ~/backup-usb.sh /media/usb/storage/
sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded ~/restore-usb.sh /media/usb/storage/
sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded ~/mount-usb.sh /media/usb/storage/
sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded ~/umount-usb.sh /media/usb/storage/

umount-usb.sh

#!/bin/bash

sudo umount /media/usb

Kan skapa ett restoreskript också, bra att ha för att återställa en backup till en nyinstallerad server, i grund och botten ett omvänt backupskript. Tyvärr hamnar mapparna lite galet, vilket får fixas till manuellt i efterhand.

restore-usb.sh

#!/bin/bash

sudo rsync -rltDvu --modify-window=1 --progress --delete --delete-excluded /media/usb/storage /srv/samba/bimbokosmos

Se till att skripten blir körbara med denna:

chmod +x mount-usb.sh
chmod +x umount-usb.sh
chmod +x backup-usb.sh
chmod +x restore-usb.sh

http://askubuntu.com/questions/229589/how-to-make-a-file-e-g-a-sh-script-executable-so-it-can-be-ran-from-termina

http://linuxcommand.org/man_pages/rsync1.html

http://askubuntu.com/questions/285539/detect-and-mount-devices

TiltPi

Att iordningsställa en TiltPi är en enkel och rättfram process. Inled med att följa instruktionerna hos Tilt Hydrometer. Komplettera med att skapa en tom fil i boot-volymen med filnamnet ”SSH”, logga in i denna med pi/tilt. Den här processen utgår från en färdig skivavbildning, skulle du vilja bygga din TiltPi från grunden, så finns det även en guide för detta.

När väl TiltPi-servern är igång, kan du ställa in in den i sitt webbgränssnitt på http://192.168.1.xxx:1880/ui. Gå till systemsidan och ändra till Celsius och Europe/Stockholm, tryck sedan Restart för att den nya tidsinställningen skall lagras i din TiltPi. När sedan TiltPi är omstartad kan det vara en idé att uppdatera hela Busterinstallationen med sudo apt update && sudo apt upgrade -y.

Koppla sedan TiltPi till ditt Brewfather-konto enligt instruktionerna hos Brewfather.

Lämna en kommentar

Din e-postadress kommer inte publiceras.