Pretty Linux on My Web

plmw


Linux and web: коротко и о главном

иногда можно прочитать даже и про Linux


MySQL shell script проверить существует ли база данных
Pretty Linux on My Web
plmw
С днем системного администратора всех, кто имеет к этой профессии хоть какое-то отношение.

Время от времени сталкиваюсь с необходимостью выяснить сущесвует ли в MySQL база данных с определенным именем.
Написал небольшой shell скрипт, чтобы делать подобную проверку.
Может быть он будет вам тоже полезен:

Файл ./check-mysql-database-exists.sh

#!/usr/bin/env bash

if [ -z $1 ];
then
echo "Usage: $0 'database name'"
exit 1
fi

DB_NAME=$1

if [ ! -z "`mysql -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='$DB_NAME'" 2>&1`" ];
then
echo "DATABASE $DB_NAME ALREADY EXISTS"
else
echo "DATABASE $DB_NAME DOES NOT EXIST"
fi


Назначим права, чтобы скрипт стал исполняемым:
$ chmod -v 755 ./check-mysql-database-exists.sh

Запускаем проверку базы database_name_to_check так:
$ ./check-mysql-database-exists.sh database_name_to_check

И еще одно: с сегодняшнего дня основным адресом блога будет http://www.linuxweb.net.ua/.
Все статьи будут публиковаться на впервую очередь на нем, а потом уже будет производиться кросс пост в мой LiveJournal http://plmw.livejournal.com/.


Linux bash: пример работы с массивом и цикл for
Pretty Linux on My Web
plmw
Время от времени приходится в Linux bash shell скрпитах использовать массивы и циклы for.
Может быть кому-то тоже будет полезно это.

#!/usr/bin/env bash

dirs=('tmp' 'cache' 'logs')

for j in ${dirs[@]}
do
echo $j
done

В примере переменная dirs содержит массив значений, значения которого перебираются в цикле for

Tags: , , ,

rpm посмотреть список зависимоестей пакета
Pretty Linux on My Web
plmw
В rpm-based Linux системах иногда бывает полезно посмотреть список зависимостей для пакета.

Это можно сделать командой rpm -qR имя пакета.

Например:
# rpm -qR htop
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libm.so.6()(64bit)
libm.so.6(GLIBC_2.2.5)(64bit)
libncursesw.so.5()(64bit)
libtinfo.so.5()(64bit)
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)
rpmlib(PayloadIsXz) <= 5.2-1

Tags:

yum deplist список зависимостей пакета
Pretty Linux on My Web
plmw
Чтобы посмотреть список зависимостей для пакета в rpm-based Linux Red Hat, CentOS, Fedora и других дистрибутивах можно выполнить такие команды:

1. Получить все пакеты, в названии, которых есть "office"
# rpm -qa |grep -i "office"
libreoffice-impress-3.6.6.2-5.fc18.x86_64
libreoffice-calc-3.6.6.2-5.fc18.x86_64
libreoffice-writer-3.6.6.2-5.fc18.x86_64
libreoffice-core-3.6.6.2-5.fc18.x86_64
libreoffice-graphicfilter-3.6.6.2-5.fc18.x86_64
libreoffice-kde-3.6.6.2-5.fc18.x86_64
libreoffice-pdfimport-3.6.6.2-5.fc18.x86_64
libreoffice-math-3.6.6.2-5.fc18.x86_64
libreoffice-xsltfilter-3.6.6.2-5.fc18.x86_64
libreoffice-ure-3.6.6.2-5.fc18.x86_64
libreoffice-draw-3.6.6.2-5.fc18.x86_64
libreoffice-opensymbol-fonts-3.6.6.2-5.fc18.noarch
libreoffice-presenter-screen-3.6.6.2-5.fc18.x86_64

2. Получить список зависимостей для пакета libreoffice-draw-3.6.6.2-5.fc18.x86_64
# yum deplist libreoffice-draw-3.6.6.2-5.fc18.x86_64
Loaded plugins: auto-update-debuginfo, langpacks, presto, refresh-packagekit
Unable to send message to PackageKit
...
package: libreoffice-draw.x86_64 1:3.6.6.2-5.fc18
dependency: /bin/sh
provider: bash.x86_64 4.2.45-1.fc18
dependency: libreoffice-core = 1:3.6.6.2-5.fc18
provider: libreoffice-core.x86_64 1:3.6.6.2-5.fc18
dependency: libreoffice-graphicfilter = 1:3.6.6.2-5.fc18
provider: libreoffice-graphicfilter.x86_64 1:3.6.6.2-5.fc18
dependency: libreoffice-pdfimport = 1:3.6.6.2-5.fc18
provider: libreoffice-pdfimport.x86_64 1:3.6.6.2-5.fc18
dependency: libreoffice-ure = 1:3.6.6.2-5.fc18
provider: libreoffice-ure.x86_64 1:3.6.6.2-5.fc18

Tags: ,

Linux найти и выбрать с помощью shuf случайное фото jpg jpeg png
Pretty Linux on My Web
plmw
Бывает полезно из найденого списка файлов случайным образом получить один.
Это можно сделать такой командой:

find /home/taras/Pictures/ -type f -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' | shuf -n 1

Tags: ,

Linux ssh-keygen удалить идентификатор хоста
Pretty Linux on My Web
plmw
Если необходимо удалить идентификатор хоста 192.168.2.1 в Linux это можно сделать с помощью команды:

ssh-keygen -f "/home/taras/.ssh/known_hosts" -R 192.168.2.1


Linux sysstat iostat просмотр отчета о CPU и вводе/выводе устройств и партиций
Pretty Linux on My Web
plmw
В Red Hat Enterprise, CentOS, Fedora и других Linux системах есть замечательный пакет sysstat

# yum info sysstat
Loaded plugins: rhnplugin, security
This system is receiving updates from RHN Classic or RHN Satellite.
drivesrvr | 951 B 00:00
Installed Packages
Name : sysstat
Arch : x86_64
Version : 7.0.2
Release : 12.el5
Size : 418 k
Repo : installed
Summary : The sar and iostat system monitoring commands.
URL : http://perso.orange.fr/sebastien.godard/
License : GPL
Description: This package provides the sar and iostat commands for Linux. Sar and
: iostat enable system monitoring of disk, network, and other IO
: activity.

В его состав входит утилита iostat - Report Central Processing Unit (CPU) statistics and input/output statistics for devices and partitions.

Пример использования:
# iostat -dh

-d - The -d option is exclusive of the -c option and displays only the device utilization report.
-h - Display the NFS report more human readable.

Все опции можно посмотреть в man iostat


Linux IPTables firewall просмотреть и удалить правило
Pretty Linux on My Web
plmw
Чтобы посмотреть список текущих активных правил выполняем команду:
# /sbin/iptables -vnL --line-numbers

-v, --verbose - Verbose output. This option makes the list command show the interface name, the rule options (if any), and the TOS masks. The packet and byte counters are also listed, with the suffix ’K’, ’M’ or ’G’ for 1000, 1,000,000 and 1,000,000,000 multipliers respectively (but see the -x flag to change this). For appending, insertion, deletion and replacement, this causes detailed information on the rule or rules to be printed.

-n, --numeric - Numeric output. IP addresses and port numbers will be printed in numeric format. By default, the program will try to display them as host names, network names, or services (whenever applicable).

-L, --list [chain] - List all rules in the selected chain. If no chain is selected, all chains are listed. As every other iptables command, it applies to the specified table (filter is the default), so NAT rules get listed by
iptables -t nat -n -L
Please note that it is often used with the -n option, in order to avoid long reverse DNS lookups. It is legal to specify the -Z (zero) option as well, in which case the chain(s) will be atomically listed and zeroed. The exact output is affected by the other arguments given. The exact rules are suppressed until you use
iptables -L -v

--line-numbers - показать номера строк, чтобы потом можно было удалить какое-то из правил. When listing rules, add line numbers to the beginning of each rule, corresponding to that rule’s position in the chain.

Для просмотра всех возможных опций см. man iptables

Для того, чтобы удалить правило из IPTables служит команда D.
Например, чтобы удалить правило N из цепочки INPUT выполняем:
# /sbin/iptables -D INPUT N


Linux скачать и распаковать rpm
Pretty Linux on My Web
plmw
В rpm-based ОС Linux иногда бывает полезным скачать и распаковать какой-либо rpm.

Это можно сделать командами:
# wget http://domain.com/some.rpm
# rpm2cpio some.rpm | cpio -idv
Что распакует содержимое some.rpm в текущую папку.


Linux создать изменить дату создания файла touch
Pretty Linux on My Web
plmw
В Linux можно создать новый файл или изменить дату создания существующего файла с помощью команды touch

$ touch --date="2013-04-02" /home/plmw/test_file_2013-04-02

Проверяем созданный файл:

$ ls -Alh /home/plmw/test_file_2013-04-02
-rw-r--r-- 1 plmw plmw 0 Apr 2 00:00 test_file_2013-04-02


Tags: ,

?

Log in