czwartek, 23 stycznia 2020
SFTP uruchamiane z linii poleceń bez hasła w Linux
Jeśli uruchamiasz SFTP, to klient odpyta się o hasło. Uniemożliwia to skorzystanie z SFTP np. w cron'ie.
Da się jednak uruchomić klienta w tzw "batch mode". Wymaga to generowania i przesyłania sobie kluczy ssh. Pełna instrukcja jak to zrobić znajduje się tutaj: https://www.computerhope.com/unix/sftp.htm#Batch-Mode
środa, 22 stycznia 2020
Zmienne w bash'u w Linuxie
Najprostsze użycie zmiennej:
#!/bin/bash
STR="Hello World!"
echo $STR
Na konsoli na wypisze string "Hello World!".
Tu ciut więcej:
#!/bin/bash
FILENAME=/var/my-backup-$(date +%Y-%m-%d).tgz
tar -czf $FILENAME /home/me/
Zmienna $FILENAME
to string dynamiczny, w skład którego wchodzi data w formacie rok-miesiąc-dzień, np. 20019-12-31. Program tar zarchiwizuje nam w pliku /var/my-backup-2019-12-21.tgz
zawartość katalogu /home/me
I jeszcze króciutko o funkcjach i zmiennych lokalnych (local):
#!/bin/bash
HELLO=Hello
function hello {
local HELLO=World
echo $HELLO
}
echo $HELLO
hello
echo $HELLO
Tu zmienna $HELLO
przyjmuje najpierw wartość "hello", a po wykonaniu funkcji hello
zmienna $HELLO
zmienia wartość na "World".
zip i Linux
Kompresowanie plików.
Składnia:
zip [options] zipfile list_of_files_with_spaces
Skompresuj plik filename.txt
do archiwum o nazwie myfile.zip
:
$ zip myfile filename.txt
Wyciągnij z archiwum:
$ unzip myfile.zip
Uprzednio zarchiwizowany plik filename.txt
zostanie wydobyty z archiwum.
Opcja -u
czyli aktualizacja pliku w archiwum
$ zip –u filename.zip file.txt
W tym przypadku zostanie zaktualizowany plik file.txt
w archiwum filename.zip
Opcja -m
czyli usunięcie pliku źródłowego po udanej kompresji archiwum:
$ zip –m filename.zip file.txt
Tu zostanie usunięty plik file.txt
Opcja -r
(recursively) czyli archiwizacja całego katalogu:
$ zip –r filename.zip directory_name
Tu zostanie skompresowany folder o nazwie directory_name
cron w Linuxie
Listowanie istniejących zadań crontaba:
$ crontab -l
Edycja zadań crontaba:
$ crontab -e
Znaczenie poszczególnych gwiazdek w pliku crontaba:
Czyli:
- pierwsza gwiazdka - minuta wykonywania zadania
- druga gwiazdka - godzina wykonywania zadania
- trzecia gwiazdka - dzień wykonywania zadania
- czwarta gwiazdka - jest odpowiednikiem miesiąca od 1 do 12 lub jan - dec (z angielska)
- no i piąta gwiazdka - jest dniem tygodnia, gdzie 0 i 7 to niedziela! Albo można zapisać z angielska (he he) od sun do sat
Tworzenie zakresów lub częstotliwości:
- */5 * * * * - wykonaj polecenie co pięć minut każdego dnia
- 0 13-15 * * * – wykonaj polecenie o 13:00, 14:00 i 15:00 każdego dnia
- 15 23 * * mon-fri – oznacza zadanie wykonywane codziennie od poniedziałku do piątku o godzinie 23:15
- 0 4 * * mon-fri/2 – uruchomi polecenie w każdy poniedziałek, środę i piątek o godzinie 4:00
No i w całości:
00 */12 * * * /home/wacek/scripts/rename_files.sh 2>&1
Czyli: co dwanaście godzin (z moich obserwacji o 12:00 i 24:00) wykonaj skrypt z katalogu użytkownika "wacek" i jego katalogu "scripts" plik wykonywalny o nazwie "rename_files.sh"
Subskrybuj:
Posty (Atom)