Usuwanie plików w systemie Windows z poziomu shella

Jak administrujemy systemami Windows z pewnością zachodzi potrzeba zwalniania miejsca poprzez usuwanie danych.

Oczywiście mowa tutaj o shellu aby nie robić takich prac z "ręki".

Windows wyposażony jest w narzędzie forfiles.

Mój przykład użycia

forfiles /P F:\ /M *.bak /D -15 /C "cmd /c del @file"

Wyjaśnienie przełączników:

/P wskazanie scieżki gdzie mamy szukać plików. U mnie w przykładzie jest F:\

/M maska jakie pliki mamy szukać. U mnie w przykładzie są pliki *.bak

/D opcja wskazuje do jakiej daty program ma zostawiać pliki. Ja ustawiłem 15 dni. Pliki starsze niż 15 dni program ma usunąć.

/C wywołuje polecenie. Ja wybrałem aby powloka usuwała pasujące pliki.

Mały skrypt: sprawdz.bat

@echo off
:main
CLS

IF EXIST F:\ (GOTO yes) ELSE (GOTO no)

:yes
CLS
forfiles /P F:\ /M *.bak /D -15 /C "cmd /c del @file"
exit

:no
CLS
exit

Przydatne polecenia w Zimbra

'Zimbra'

Jak chcemy cokolwiek zrobić w shellu w systemie Zimbra trzeba się przelogować na użytkownika zimbra

su - zimbra

Wyświetl wszystkich użytkowników domeny

zmprov -l gaa domain.com

Sprawdzenie jaki status ma użytkownik

zmprov ga user@domain.com zimbraAccountStatus | grep zimbraAccountStatus | awk '{print $2}'

Zablokowanie użytkownika

zmprov ma user@domain.com zimbraAccountStatus lock

Odblokowanie użytkownika

zmprov ma user@domain.com zimbraAccountStatus active

Pokaż aktywność w ciągu doby dla danego konta (wysyłka)

./libexec/zmmsgtrace -s user@domain.com

Skrypt, który pokaze listę statusu kont dla wszystkich domen

#!/bin/bash
domeny=$(/opt/zimbra/bin/zmprov gad)
for domena in $domeny
do
        konta=$(/opt/zimbra/bin/zmprov -l gaa $domena)
        for konto in $konta
        do
                wynik=$(/opt/zimbra/bin/zmprov ga $konto zimbraAccountStatus | grep zimbraAccountStatus | awk '{print $2}')
                echo "$konto $wynik"
        done
done

Masowa konwersja zdjęć do mniejszych rozmiarów

'Bash'

Czasami potrzebujemy szybko zmniejszyć zdjęcia do określonej wielkości. Problem w tym, że nie wiemy z jakim zdjęciem mamy do czynienia (portret, panorama).

Skrypt który ogarnia dwie rzeczy. Sprawdza czy zdjęcie jest portretem lub panoramą i zmniejsza po wielkości. Oczywiście z zachowaniem proporcji

Otwieramy konsolę i wybieramy katalog w którym znajdują się zdjęcia. Po czym wykonujemy tzw jednolinijkowca

for i in `ls *.jpg`;do
        z=$(convert $i -format "%[fx:w/h>1)?1:0]" info:)
        if [ $z -eq 1 ];then
                convert $i -resize 2000x tmp1/$i
        else
                convert $i -resize x2000 tmp1/$i
        fi
done

Ja potrzebowałem przyciąć dłuższy bok do 2000px

Zestawienie VPN klient-serwer na stałe (pptp)

'Mikrotik'

Mamy taki sobie schemat

'Schemat sieci vpn'

W biurze mamy skonfigurowany vpn (pptp) jako server. Utworzyliśmy użytkownika.

Po stronie klienta (home) na Mikrotiku klikamy w terminalu

interface pptp-client add connect-to=IP-Server user=login password=password disabled=no name=pptp-out1 profile=default-encryption

user i password wstaw takie dane jak wpisałeś przy zakładaniu użytkowników na serwerze PPTP.

Aby sprawdzić, że urządzenia nawiązały połączenie wykonujemy po stronie klienta

interface pptp-client monitor pptp-out1 without-paging

Powinno nam się wyświetlić coś w tym stylu

status: connected
  uptime: 48m6s
encoding: MPPE128 stateless
     mtu: 1450
     mru: 1450
local-address: TWÓJ-IP-PRZYZNANY-PRZEZ-SERVER
remote-address: ADRES-IP-SERVERA PPTP(PUNKT-PUNKT PPTP)

Ważna informacja to pierwsza linia status. Powinno być connected

Teraz aby można było się komunikować potrzebujemy ustawić trasę statyczną do wewnętrznej zdalnej sieci i przez jaki interfejs ma wychodzić. Na Mikrotiku kliencie wpisujemy w terminalu

ip route add dst-address=FIRMOWA-SIEC-LAN/MASKA gateway=pptp-out1

Ponadto potrzeba jeszcze zrobić maskaradę na interfejsie pptp-out1 dla naszej lokalnej sieci w domu

Czyli robimy na Mikrotiku kliencie

ip firewall nat add chain=srcnat action=masquerade src-address=LAN-HOME out-interface=pptp-out1

To powinno dać nam połączenie pomiędzy siecią w domu i firmą.

Dla mnie najlepsze jest w tym to, że nie muszę konfigurować po stronie stacji roboczej żadnego vpn-a. Jak chcę się połączyć do firmy to używam narzędzi takich samych jak wewnątrz firmy.

Ile waży baza MySQL?

'MySQL'

Wchodzimy do shella (konsola, terminal itp) i dostajemy się do naszego silnika mysql

mysql -u root -p

Zgłasza nam się znak zachęty

mysql>

Wpisujemy komendę

SELECT table_schema "DB", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM   information_schema.tables GROUP  BY table_schema;

Ważne kody w telefonie

'GSM'
*#21#

Tym kodem możecie sprawdzić czy Wasze wiadomości, połączenia i inne poufne dane są przekazywane. Jeśli tak jest, to numer, na który przekazywane są dane zostanie wyświetlony po wpisaniu tego kodu.

*#62#

Wybierając ten kod dowiesz się gdzie przekazywane są połączenia w przypadku, gdy macie wyłączony telefon lub jesteście poza zasięgiem sieci. Standardowe ustawienie operatora to przekierowanie na numer poczty głosowej.

##002#

To jest uniwersalny kod do wyłączania przekazywania połączeń z twojego telefonu, np. na pocztę głosową. Dobrym pomysłem wydaje się użycie tej funkcji, gdy planujemy wyjazd za granicę. Dzięki temu żadne dodatkowe opłaty roamingowe nie zostaną naliczone za przekazywanie połączeń.

*#06#

Za pomocą tego kodu będziesz w stanie sprawdzić numer IMEI. Numer ten jest używany przez sieć GSM do identyfikowania konkretnego urządzenia. IMEI podaje szczegółowe dane dotyczące modelu i parametrów technicznych urządzenia.

Źródło: http://www.fronda.pl/a/twoj-telefon-jest-na-podsluchu-oto-jak-to-sprawdzic,86863.html

PHP w katalogu domowym użytkownika

'PHP'

Domyślnym katalogiem składowania plików html i php jest (we współczesnych dystrybucjach) /var/www/html.

W ramach testowania wolę korzystać z katalogu public_html w lokalizacji

/home/*/public_html

Serwer www Apache posiada moduł, który nam to umożliwi.

Pomijam instalację serwera www Apache jak i modułu php dla tego serwera.

Włączamy moduł userdir

a2enmod userdir

restartujemy serwer Apache

service apache2 restart

W ubuntu 16.04 edytujemy plik

/etc/apache2/mods-enabled/php7.0.conf

i komentujemy linię

#php_admin_flag engine Off

Restartujemy usługę

service apache2 restart

i możemy cieszyć się php-em we własnym katalogu

Dostęp przez przeglądarkę możliwy jest poprzez wpis w url

http://localhost/~TwojLogin/

Aktualizacja samby jako domain controller

Używana wersja to 4.5.3 i była instalowana ze źródel.

Pobieramy wersję 4.5.4

wget https://download.samba.org/pub/samba/stable/samba-4.5.4.tar.gz

zabijamy wszystkie procesy samby działające w systemie

pkill samba

Robimy backup obecnej samby

tar czvf samba-4.5.3.tar.gz /usr/local/samba

Rozpakowujemy archiwum nowej samby

tar xzvf samba-4.5.4.tar.gz

wchodzimy do katalogu

cd samba-4.5.4

i wykonujemy polecenie

./configure

po skończeniu budujemy

make

i ostatecznie instalujemy (z uprawnieniami root)

make install

Po skończeniu sprawdzamy czy nasza baza jest spójna

/usr/local/samba/bin/samba-tool dbcheck

Startujemy z nową sambą wydając polecenie

/usr/local/samba/sbin/samba

Sprawdzamy status wersji

/usr/local/samba/bin/samba-tool -V

Cały proces u mnie na Raspberry PI3 trwa 2h