Архив метки: Linux

📜 Bash скрипт для копирования всех файлов с той же структурой каталогов

Этот скрипт оболочки предназначен для конкретной задачи, необходимой для нашего сервера.

Задача

Наша задача – скопировать все файлы, созданные в каталоге, в другой каталог с такой же структурой каталогов.

Скрипт будет запускаться с регулярным интервалом, искать все файлы, созданные в исходном каталоге, и копировать их в каталог назначения. Читать

Как использовать команду whois в Linux

Поиск в Whois расскажет вам много информации о том, кто владеет интернет-доменом. В Linux вы можете запустить поиск whois из командной строки. Мы проведем вас через это.

Система Whois

Система whois представляет собой список записей, которые содержат сведения как о владельцах доменов, так и о владельцах. Интернет-корпорация по присвоению имен и номеров  (ICANN) регулирует регистрацию доменного имени и право собственности, но список записей проводится многими компаниями, известными как реестры.

Любой может запросить список записей. Когда вы это сделаете, один из реестров обработает ваш запрос и отправит вам данные из соответствующей записи whois.

Прежде чем идти дальше, важно, чтобы вы ознакомились со следующими терминами:

  • Реестр: компания, которая управляет списком, содержащим набор доменных имен (их много).
  • Регистрант: законный владелец домена; это зарегистрировано для этого человека.
  • Регистратор. Регистрант использует регистратора для своей регистрации.

Запись Whois содержит всю контактную информацию, связанную с лицом, компанией или другим лицом, зарегистрировавшим доменное имя. Некоторые регистрации содержат больше информации, чем другие, а некоторые реестры возвращают различное количество информации.

Типичная запись whois будет содержать следующую информацию:

  • The name and contact information of the registrant: владелец домена.
  • The name and contact information of the registrar: организация, которая зарегистрировала доменное имя.
  • The registration date: дата регистрации домена.
  • When the information was last updated: дата последнего обновления информации о домене.
  • The expiration date: дата освобождения домена.

Вы можете делать запросы whois в Интернете, но с помощью whoisкоманды Linux вы можете выполнять поиск прямо из командной строки. Это полезно, если вам нужно выполнить поиск с компьютера без графического интерфейса пользователя или если вы хотите сделать это из сценария оболочки.

Установка Whois

Команда whoisуже была установлена ​​в Ubuntu 20.04. Если вам нужно установить его в вашей версии Ubuntu, вы можете сделать это с помощью следующей команды:

sudo apt-get install whois

На Fedora используйте команду ниже:

sudo dnf install whois

И, наконец, на Манджаро введите следующее:

sudo pacman -Syu whois

Использование whois с доменным именем

Вы можете использовать whoisкоманду с доменными именами или  Internet Protocol (IP) адреса. Для каждого из них возвращается немного другой набор информации.

Мы будем использовать доменное имя для нашего первого примера:

whois cnn.com

Ответ из реестра whois начинается со сводки, а затем повторяется с добавлением дополнительной информации. Ниже приведен пример с удаленными заявлениями о товарных знаках и условиями использования:

Domain Name: CNN.COM

Registry Domain ID: 3269879_DOMAIN_COM-VRSN

Registrar WHOIS Server: whois.corporatedomains.com

Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html

Updated Date: 2018-04-10T16:43:38Z

Creation Date: 1993-09-22T04:00:00Z

Registry Expiry Date: 2026-09-21T04:00:00Z

Registrar: CSC Corporate Domains, Inc.

Registrar IANA ID: 299

Registrar Abuse Contact Email: domainabuse@cscglobal.com

Registrar Abuse Contact Phone: 8887802723

Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited

Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited

Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited

Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited

Name Server: NS-1086.AWSDNS-07.ORG

Name Server: NS-1630.AWSDNS-11.CO.UK

Name Server: NS-47.AWSDNS-05.COM

Name Server: NS-576.AWSDNS-08.NET

DNSSEC: unsigned

Это достаточно понятно. Мы видим различные сведения о регистраторе и реестре, в том числе контактные данные, даты регистрации и т. Д. В списке есть несколько записей, которые вы можете не распознать.

Управление по присвоению номеров в Интернете (IANA) контролирует и координирует такие вещи, как зоны системы доменных имен верхнего уровня, системы адресации по протоколу IP и список реестров. Этот реестр имеет номер 299, который указан в списке как «IANA ID: 299.»

Строки «Статус домена» показывают состояние, в котором находится домен, и он может быть в нескольких одновременно. Состояния определены в расширяемом протоколе обеспечения. Некоторые из них встречаются редко, а другие ограничены определенными ситуациями, такими как правовые споры.

Следующие государства прикреплены к этой регистрации:

  • clientTransferProhibited: Реестр домена будет отклонять запросы на передачу домена от текущего регистратора к другому.
  • serverDeleteProhibited: домен не может быть удален.
  • serverTransferProhibited: домен не может быть передан другому регистратору.
  • serverUpdateProhibited: домен не может быть обновлен

Последние три обычно активируются по запросу владельца регистрации или в случае судебного разбирательства. В этом случае CNN, вероятно, потребовал, чтобы они были принудительно «заблокированы» доменом компании.

«DNSSEC» означает «Расширения безопасности системы доменных имен» , схему, которая позволяет распознавателю DNS-имен криптографически проверять, что данные, полученные из зоны DNS, действительны и не были подделаны.

Более длинная часть ответа показана ниже:

Domain Name: cnn.com

Registry Domain ID: 3269879_DOMAIN_COM-VRSN

Registrar WHOIS Server: whois.corporatedomains.com

Registrar URL: www.cscprotectsbrands.com

Updated Date: 2018-04-10T16:43:38Z

Creation Date: 1993-09-22T04:00:00Z

Registrar Registration Expiration Date: 2026-09-21T04:00:00Z

Registrar: CSC CORPORATE DOMAINS, INC.

Registrar IANA ID: 299

Registrar Abuse Contact Email: domainabuse@cscglobal.com

Registrar Abuse Contact Phone: +1.8887802723

Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited

Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited

Domain Status: serverTransferProhibited http://www.icann.org/epp#serverTransferProhibited

Domain Status: serverUpdateProhibited http://www.icann.org/epp#serverUpdateProhibited

Registry Registrant ID:

Registrant Name: Domain Name Manager

Registrant Organization: Turner Broadcasting System, Inc.

Registrant Street: One CNN Center

Registrant City: Atlanta

Registrant State/Province: GA

Registrant Postal Code: 30303

Registrant Country: US

Registrant Phone: +1.4048275000

Registrant Phone Ext:

Registrant Fax: +1.4048271995

Registrant Fax Ext:

Registrant Email: tmgroup@turner.com

Registry Admin ID:

Admin Name: Domain Name Manager

Admin Organization: Turner Broadcasting System, Inc.

Admin Street: One CNN Center

Admin City: Atlanta

Admin State/Province: GA

Admin Postal Code: 30303

Admin Country: US

Admin Phone: +1.4048275000

Admin Phone Ext:

Admin Fax: +1.4048271995

Admin Fax Ext:

Admin Email: tmgroup@turner.com

Registry Tech ID:

Tech Name: TBS Server Operations

Tech Organization: Turner Broadcasting System, Inc.

Tech Street: One CNN Center

Tech City: Atlanta

Tech State/Province: GA

Tech Postal Code: 30303

Tech Country: US

Tech Phone: +1.4048275000

Tech Phone Ext:

Tech Fax: +1.4048271593

Tech Fax Ext:

Tech Email: hostmaster@turner.com

Name Server: ns-576.awsdns-08.net

Name Server: ns-1086.awsdns-07.org

Name Server: ns-47.awsdns-05.com

Name Server: ns-1630.awsdns-11.co.uk

DNSSEC: unsigned

Это дает нам более или менее ту же информацию, что и резюме, с дополнительными разделами о регистранте и его контактных данных для административных и технических целей.

Имя регистранта называется «Менеджер доменных имен». Иногда за определенную плату компании предпочитают, чтобы их регистратор регистрировал домен от своего имени под общим именем, которое регистратор поддерживает для этой цели. Это, кажется, имеет место здесь. Однако, поскольку адрес регистранта — «1 Центр CCN», очевидно, кто является регистрантом.

Использование whois с IP-адресом

Использовать  whoisс IP-адресом так же просто, как использовать его с доменным именем. Просто укажите IP-адрес после whois, вот так:

whois 205.251.242.103

Это результат, возвращаемый whois:

NetRange: 205.251.192.0 - 205.251.255.255

CIDR: 205.251.192.0/18

NetName: AMAZON-05

NetHandle: NET-205-251-192-0-1

Parent: NET205 (NET-205-0-0-0-0)

NetType: Direct Allocation

OriginAS: AS16509, AS39111, AS7224

Organization: Amazon.com, Inc. (AMAZON-4)

RegDate: 2010-08-27

Updated: 2015-09-24

Ref: https://rdap.arin.net/registry/ip/205.251.192.0



OrgName: Amazon.com, Inc.

OrgId: AMAZON-4

Address: 1918 8th Ave

City: SEATTLE

StateProv: WA

PostalCode: 98101-1244

Country: US

RegDate: 1995-01-23

Updated: 2020-03-31

Ref: https://rdap.arin.net/registry/entity/AMAZON-4



OrgAbuseHandle: AEA8-ARIN

OrgAbuseName: Amazon EC2 Abuse

OrgAbusePhone: +1-206-266-4064 

OrgAbuseEmail: abuse@amazonaws.com

OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN



OrgNOCHandle: AANO1-ARIN

OrgNOCName: Amazon AWS Network Operations

OrgNOCPhone: +1-206-266-4064 

OrgNOCEmail: amzn-noc-contact@amazon.com

OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN



OrgRoutingHandle: ADR29-ARIN

OrgRoutingName: AWS Dogfish Routing

OrgRoutingPhone: +1-206-266-4064 

OrgRoutingEmail: aws-dogfish-routing-poc@amazon.com

OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN



OrgRoutingHandle: IPROU3-ARIN

OrgRoutingName: IP Routing

OrgRoutingPhone: +1-206-266-4064 

OrgRoutingEmail: aws-routing-poc@amazon.com

OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN



OrgTechHandle: ANO24-ARIN

OrgTechName: Amazon EC2 Network Operations

OrgTechPhone: +1-206-266-4064 

OrgTechEmail: amzn-noc-contact@amazon.com

OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN



RTechHandle: ROLEA19-ARIN

RTechName: Role Account

RTechPhone: +1-206-266-4064 

RTechEmail: ipmanagement@amazon.com

RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN



RAbuseHandle: ROLEA19-ARIN

RAbuseName: Role Account

RAbusePhone: +1-206-266-4064 

RAbuseEmail: ipmanagement@amazon.com

RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN



RNOCHandle: ROLEA19-ARIN

RNOCName: Role Account

RNOCPhone: +1-206-266-4064 

RNOCEmail: ipmanagement@amazon.com

RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN

Первый раздел содержит информацию об организации, которой принадлежит искомый IP-адрес (в данном случае один из многих, принадлежащих Amazon). Мы также получили некоторые идентификаторы, используемые для внутренней идентификации Amazon.com, Inc. в реестре.

Второй раздел содержит адрес и имя владельца регистрации, Amazon.com, Inc. Веб-адрес в поле «Ref:» содержит эту информацию в формате JavaScript Object Notation (JSON).

Другие разделы содержат контактную информацию, которая позволяет сообщать о проблемах, связанных со злоупотреблениями, работой сети, маршрутизацией трафика и т. Д.

Использование whois в скрипте

Чтобы использовать whois в скрипте, давайте предположим, что у нас есть набор доменов, для которых нам нужно проверить даты истечения срока действия. Мы можем сделать это с помощью небольшого сценария оболочки.

Введите это в редактор и сохраните как «get-expiry.sh»:

#!/bin/bash



DOMAIN_LIST="howtogeek.com reviewgeek.com lifesavvy.com cloudsavvyit.com"



echo "Expiration dates:"



for domain in $DOMAIN_LIST

do

  echo -n "$domain :: "

  whois $domain | grep 'Expiration' | awk '{print $5}'

done

Установите для сценария разрешения на выполнение с помощью chmodкоманды, как показано ниже:

chmod + x get-expiry.sh

Запустите скрипт, назвав его по имени:

./get-expiry.sh

Срок годности для каждого домена извлекается из ответа из whoisиспользуя grepдля поиска строк , которые содержат строку «Действительно,» и используя awk для печати пятого элемента из этой строки.

Удобство и автоматизация

Да, вы также можете выполнять поиск в Интернете. Однако наличие whoisкоманды в окне терминала и сценариях обеспечивает удобство, гибкость и дает возможность автоматизировать некоторые из ваших рабочих нагрузок.



2020-07-11T12:14:17
Вопросы читателей

🐧 Как перенести виртуальные машины Virtualbox в виртуальные машины KVM на Linux

Вы решили перейти с Oracle VirtualBox на виртуальную машину KVM?

В этом руководстве объясняется, как мигрировать виртуальные машины Virtualbox в виртуальные машины KVM на Linux.

Возможно, у вас есть несколько важных гостевых машин на VirtualBox.

Вместо создания новых гостей KVM с такой же конфигурацией, вы можете легко перенести существующие машины Virtualbox на KVM, как описано в это мануале.

Перенос виртуальных машин Virtualbox на виртуальные машины KVM на Linux

Во-первых, отключите все виртуальные машины, размещенные на KVM и VirtualBox.

Формат образа диска по умолчанию у виртуальной машины Virtualbox – VDI.

Мы можем найти список образов виртуальных дисков и их расположение с помощью команды:

$ vboxmanage list hdds

или,

 

$ VBoxManage list hdds

 

Пример вывода:

 

UUID:           ecfb6d5c-aa10-4ffc-b40c-b871f0404da8

Parent UUID:    base

State:          created

Type:           normal (base)

Location:       /home/itsecforu/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi

Storage format: VDI

Capacity:       20480 MBytes

Encryption:     disabled



UUID:           34a5709f-188c-4040-98f9-6093628c3d88

Parent UUID:    base

State:          created

Type:           normal (base)

Location:       /home/itsecforu/VirtualBox VMs/Ubuntu 20.04 Server/Ubuntu 20.04 Server.vdi

Storage format: VDI

Capacity:       20480 MBytes

Encryption:     disabled

 

Как видите, у меня две виртуальные машины Virtualbox.

Теперь я собираюсь преобразовать образ диска машины CentOS 8 в формат необработанного диска с помощью команды «vboxmanage»:

$ vboxmanage clonehd --format RAW "/home/itsecforu/VirtualBox VMs/CentOS 8 Server/CentOS 8 Server.vdi" CentOS_8_Server.img

 

Если образы дисков содержат пробелы в их именах, укажите имя в кавычках, как показано выше.

 

 

Пример вывода:

 

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Clone medium created in format 'RAW'. UUID: afff3db8-b460-4f68-9c02-0f5d0d766c8e

 

Образ RAW слишком большой.

 

Итак, давайте преобразуем формат образа RAW в формат диска KVM, т.е. сжатый qcow2, с помощью команды qemu-img:

$ qemu-img convert -f raw CentOS_8_Server.img -O qcow2 CentOS_8_Server.qcow2

 

Мы конвертировали из VDI, т.е. образа диска Virtualbox в формат образа KVM qcow2.

Теперь вы можете импортировать образ диска на существующий компьютер KVM или создать новый экземпляр с этим вновь преобразованным образом диска KVM из командной строки или с помощью любых графических приложений управления KVM, таких как Virt-manager или веб-консоль Cockpit.

В следующем руководстве я объясню, как создать новый экземпляр KVM с существующим образом диска qcow2.

Установка FreeOffice в Ubuntu/Debian

В сегодняшней статье поговорим о еще одном замечательном БЕСПЛАТНОМ пакете для работы с офисными документами – FreeOffice. 

FreeOffice в Ubuntu/Debian поддерживает форматы *.docx, *.xlsx, *.pptx от Microsoft Office, а также свои собственные *.tmdx, *.pmdx, *.prdx.

FreeOffice – бесплатный офисный пакет, альтернатива Microsoft Office. Для Windows, Mac и Linux систем.





Установка FreeOffice в Ubuntu/Debian




Для установки FreeOffice в Ubuntu/Debian нам потребуется скачать данный пакет с официального сайта разработчика. Либо при помощи командной строки.




# Для 64-разрядной системы
wget https://www.freeoffice.com/download.php?filename=https://www.softmaker.net/down/softmaker-freeoffice-2021_1036-01_amd64.deb




Далее устанавливаем наш скаченный пакет.




# 64-разрядной версии Ubuntu/Debian
sudo dpkg -i softmaker-freeoffice-2018_976-01_amd64.deb
sudo apt-get install -f




Настройка автоматических обновлений в Ubuntu/Debian




SoftMaker FreeOffice 2018 можно обновить из этого репозитория:




DEB: https://shop.softmaker.com/repo/apt




Чтобы настроить свою систему на использование этого репозитория, сначала нужно установить SoftMaker FreeOffice. Затем открыть оболочку или окно терминала и ввести следующие команды:




sudo /usr/share/freeoffice2018/add_apt_repo.sh




Если вы не используете автоматические обновления, обновить SoftMaker FreeOffice до последней доступной редакции можно посредством ввода этих команд:




sudo apt update
sudo apt dist-upgrade




Восстановление значков документов




После установки FreeOffice входящим в пакет приложениям назначаются значки распространенных форматов документов, в частности DOCX, XLSX и PPTX. Если вам не нравится наш стиль значков, вы можете восстановить предыдущие значки, выполнив скрипт:




sudo /usr/share/freeoffice2018/mime/remove_icons.sh




Вот еще один продукт от китайских разработчиков WPS Office



[endtxt]




RSS



Добавление RSS-ленты на главную страницу этого сайта не поддерживается, так как это может привести к зацикливанию, замедляющему работу вашего сайта. Попробуйте использовать другой блок, например блок Последние записи, для отображения записей сайта.


2020-07-06T12:56:44
Office

rtorrent – терминальный торрент для Linux

Сегодня в статье рассмотрим небольшую утилиту rtorrent – терминальный торрент клиент для Linux систем. Использовать я буду Ubuntu Server 20.04 LTS. И так давайте начнем.

Читать

🐧 Скрипт shell для резервного копирования базы данных MongoDB

MongoDB – это кроссплатформенный, ориентированный на документы сервер баз данных NoSql.

В этом руководстве вы найдете скрипт оболочки для резервного копирования базы данных MongoDB.

Скрипт также удаляет резервные копии с сервера старше указанного дня.

Вы можете скопировать этот скрипт:

!/bin/bash





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



##



##   MongoDB Database Backup Script 



##   Written By: Rahul Kumar



##   Update on: June 20, 2020



##



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



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



TODAY=`date +"%d%b%Y"`





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



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



DB_BACKUP_PATH='/backup/mongo'



MONGO_HOST='localhost'



MONGO_PORT='27017'





# If mongodb is protected with username password.



# Set AUTH_ENABLED to 1 



# and add MONGO_USER and MONGO_PASSWD values correctly



AUTH_ENABLED=0



MONGO_USER=''



MONGO_PASSWD=''



# Set DATABASE_NAMES to "ALL" to backup all databases.



# or specify databases names seprated with space to backup 



# specific databases only.



DATABASE_NAMES='ALL'



#DATABASE_NAMES='mydb db2 newdb'



## Number of days to keep local backup copy



BACKUP_RETAIN_DAYS=30   



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



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



mkdir -p ${DB_BACKUP_PATH}/${TODAY}



AUTH_PARAM=""



if [ ${AUTH_ENABLED} -eq 1 ]; then



AUTH_PARAM=" --username ${MONGO_USER} --password ${MONGO_PASSWD} "



fi



if [ ${DATABASE_NAMES} = "ALL" ]; then



echo "You have choose to backup all databases"



mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/



else



echo "Running backup for selected databases"



for DB_NAME in ${DATABASE_NAMES}



do



mongodump --host ${MONGO_HOST} --port ${MONGO_PORT} --db ${DB_NAME} ${AUTH_PARAM} --out ${DB_BACKUP_PATH}/${TODAY}/



done



fi



######## Remove backups older than {BACKUP_RETAIN_DAYS} days  ########



DBDELDATE=`date +"%d%b%Y" --date="${BACKUP_RETAIN_DAYS} days ago"`





if [ ! -z ${DB_BACKUP_PATH} ]; then



      cd ${DB_BACKUP_PATH}



      if [ ! -z ${DBDELDATE} ] && [ -d ${DBDELDATE} ]; then



            rm -rf ${DBDELDATE}



      fi



fi





######################### End of script ##############################

Расписание резервного копирования MongoDB

Вы можете легко запланировать этот скрипт в crontab для регулярного резервного копирования баз данных.

0 2 * * * /backup/mongo-backup.sh



2020-06-23T08:44:52
Скрипты