Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - Маленькие скрипты на каждый день

Ответить
Настройки темы
Прочее - Маленькие скрипты на каждый день

Аватара для [mzd]

Линуксоид-стакановец


Сообщения: 2394
Благодарности: 186


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Изменения
Автор: [mzd]
Дата: 17-01-2007
В этой теме будут публиковаться маленькие скрипты, помогающие выполнять рутинную работу.

Скрипт меняет кодировку всех файлов в текущей директории с cp1251 на UTF-8
Код: Выделить весь код
#/bin/sh
dir=.

for i in $dir/*
	     do
		if [ -f $i ]
		   then 
		       cp $i $i.utf
                       iconv -f cp1251 -t utf-8 $i -o $i.utf
		       mv $i.utf $i 			
		fi
	     done
Скрипт меняет строку charset=windows-1251 на charset=UTF-8 в каждом файле текущей директории
Код: Выделить весь код
#bin/sh
dir=.

for i in $dir/*
	     do
		if [ -f $i ]		   
		   then
                       cp $i $i.ed 
                       sed 's/charset=windows-1251/charset=UTF-8/g' $i > $i.ed
		       mv $i.ed $i
		fi
	     done
Способ использования: скопировать текст, создать новый текстовый файл в любом текстовом редакторе, вставить скопированный текст, сохранить под именем, например, script.sh, затем в консоли дать команду
Код: Выделить весь код
chmod +rx script.sh
Запуск скрипта на исполнение выполняется из каталога со скриптом командой
Код: Выделить весь код
./script.sh

-------
Микроблог
Живя в реальном мире, стремись к невероятному... Эрнесто Че Гевара
Everybody lies. (c) House M.D.
Базовая настройка Ubuntu. Документация для новичка.
Руководство по установке, начальной настройке и основам использования операционной системы Ubuntu

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:06, 17-01-2007

 

Аватара для Arrest

runs with scissors


Сообщения: 643
Благодарности: 77

Профиль | Отправить PM | Цитировать


Генерим несколько паролей(количество - как повезет, но не больше 10), альфанумеричных, длиной 8 символов:
Код: Выделить весь код
cut -b 0-104857600 /dev/urandom | head -n 1000 | strings -n 8 | cut -b 0-8 | egrep "^[a-zA-Z0-9]*$"

-------
- Why do you call this version of software 'beta'?
- Coz it's beta than nothing.

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:02, 25-02-2008 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для [mzd]

Линуксоид-стакановец


Сообщения: 2394
Благодарности: 186

Профиль | Сайт | Отправить PM | Цитировать


Перевел с kdialog на zenity скрипт, меняющий кодировку с файле.
Код: Выделить весь код
#!/bin/sh

# Получаем имя исходного файла
SRCFILENAME=`zenity --title="Выберите исходный файл" --file-selection`

# Если имя файла не пустое идём дальше
if (test ${SRCFILENAME}1 != "1") then

    # Получаем имя конечного файла
    DSTFILENAME=`zenity --title="Выберите конечный файл" --file-selection --save`

    # Если имя файла не пустое идём дальше
    if (test ${DSTFILENAME}1 != "1") then

        # Если конечный и начальный файл один и тот же -
        # Завершаем скрипт с сообщением об ошибке
        if (test ${SRCFILENAME} = ${DSTFILENAME}) then
            zenity --error --text="Нельзя перекодировать файл сам в себя!" --title="Ошибка" 
            exit 1
        fi

        # Получаем список доступных кодировок
        ENCODINGLIST=`iconv -l | sed 's/\/\///'| awk '{ print $1 " " $1}'|sort`

        # Запрашиваем кодировку исходного файла
        ENCODING=`zenity --list --text="Выберите кодировку:" --column="Кодировка" ${ENCODINGLIST}`

        # Если кодировка выбрана - перекодируем файл и сообщаем об
        # успешном завершении скрипта
        if (test ${ENCODING}1 != "1") then

            iconv -f ${ENCODING} -t utf-8 ${SRCFILENAME} > ${DSTFILENAME}
            zenity --info --text="Перекодирование выполнено!"
        fi

    fi

fi

-------
Микроблог
Живя в реальном мире, стремись к невероятному... Эрнесто Че Гевара
Everybody lies. (c) House M.D.
Базовая настройка Ubuntu. Документация для новичка.
Руководство по установке, начальной настройке и основам использования операционной системы Ubuntu

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:43, 28-02-2008 | #12


Аватара для voler

Ветеран


Сообщения: 907
Благодарности: 36

Профиль | Отправить PM | Цитировать


Скрипт делает бэкап нужных, нам конфигов.

Код: Выделить весь код
#!/bin/bash
#Читаем содержимое файла, и копируем его файлы.
FILES=`cat /var/package.cfg`
#Добавим дату, к каталогу.
DATE=`date '+%F'`
#Создадим папку + Дата.
mkdir /backup/conf_$DATE
#Укажем куда копировать.
CR=/backup/conf_$DATE/
#Копируем файлы указанные в package.cfg
cp -f $FILES $CR
#создадим архив.
tar -cvzf /backup/conf_$DATE.gz $CR/*

#Удаляем файлы, после архивации.
rm -Rf /backup/conf_$DATE

-------
Linux, это плацдарм для изучения своих возможностей.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:03, 15-03-2008 | #13


Аватара для must die

Ветеран


Сообщения: 715
Благодарности: 77

Профиль | Отправить PM | Цитировать


Цитата Arrest:
Генерим несколько паролей(количество - как повезет, но не больше 10), альфанумеричных, длиной 8 символов: »
Может удобнее pwgen

-------
Вопреки популярному мнению, Unix - дружелюбная ОС.
Просто так случилось, что она очень избирательна в выборе друзей.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:05, 27-03-2008 | #14


Аватара для NordWest

Старожил


Сообщения: 280
Благодарности: 1

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось NordWest, 08-06-2008 в 13:53.


Отправлено: 13:30, 08-06-2008 | #15


Аватара для must die

Ветеран


Сообщения: 715
Благодарности: 77

Профиль | Отправить PM | Цитировать


NordWest,

chown -R user:group /dir_name

-------
Вопреки популярному мнению, Unix - дружелюбная ОС.
Просто так случилось, что она очень избирательна в выборе друзей.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:37, 09-06-2008 | #16


Аватара для Amin

Новый участник


Сообщения: 38
Благодарности: 3

Профиль | Отправить PM | Цитировать


Нет PGP Disk ? Не беда

#!/bin/bash

MNTPT=/home/Amin/dm_crypt_test/mount_point
CCNTR=/home/Amin/dm_crypt_test/container.dmc

start() {
echo " "
echo "----- Mount CryptoContainer ----------------------"
/sbin/losetup /dev/loop0 $CCNTR
/sbin/cryptsetup create u /dev/loop0
mount -t ext2 /dev/mapper/u $MNTPT
MLINE=`mount | grep $MNTPT`;
if [ -n "$MLINE" ]; then
echo "----- Mount CryptoContainer Complete ! ---------";
else echo '----- ERROR - Bad password -----------------';
stop ;
fi
echo " "
}

stop() {
echo " "
echo "----- Unmount CryptoContainer --------------------"
sync
umount $MNTPT
/sbin/cryptsetup remove u
/sbin/losetup -d /dev/loop0
echo "----- Unmount CryptoContainer Complete ! ---------"
echo " "
}

case "$1" in
start)
start ;;
stop)
stop ;;
*)
MLINE=`mount | grep $MNTPT`
if [ -n "$MLINE" ]; then
stop;
else
stop;
clear;
start;
fi
esac

exit 0;


К счастью, в Федоре все необходимое для шифрования файлов уже есть, поэтому ничего качать/ставить/пересобирать не пришлось.
Вот только одного не понимаю - криптография в ядре есть уже тыщу лет, а написать к этому простой интерфейс а-ля PGP Disk так никто вроде и не удосужился (хотел бы в этом ошибиться).

P.S. Отправной точкой взял вот эту статейку - http://www.xakep.ru/magazine/xa/090/104/1.asp (я юзал только секцию "Раздел в виде файла на диске", 5-я страница), только вместо reiser сделал ext2 . Для себя еще раз сделал вывод, что хоть "ксакеп" и пальцовый журнал, но найти там кое-что полезное все же можно. Впрочем, из любителей хихикать в сторону "ксакепа" практически никто не смог создать проект даже близкого уровня. Флуд ведь разводить гораздо легче, чем реально что-то полезное сделать.

===== Заметки для меня =====
touch cryptdisk.cds # создаем новый контейнер
shred -n1 -s50M cryptdisk.cds # затрем в контейнере 50 Мб /* размер */

# подготовим диск :
losetup /dev/loop0 ~/cryptdisk.cds # соединение с loop-устройством
cryptsetup -y create mydisk /dev/loop0 # создание в /dev/mapper своего диска
mkfs /dev/mapper/mydisk # форматирование раздела

HINT #1 : cryptsetup туп как пробка, и никаких паролей он не проверяет. То есть применяет алгоритм "в лоб". Поэтому даже если вы подсунете кривой (поврежденный) контейнер или неверный пароль, то cryptsetup все равно его подключит (ему похоже фиолетово, что там в loop-устройстве и какой там пароль), только в устройстве будет мусор. Проверка пароля делается mount'-ом

HINT #2 : если сделать только losetup + cryptsetup, но не выполнять mount, то в /dev/mapper/mydisk будет голое устройство, которое можно, например, проверить с помощью fsck после нештатной ситуации вроде сбоя питания.

-------
xmpp:Aminux@jabber.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 22:02, 15-06-2008 | #17


Аватара для [mzd]

Линуксоид-стакановец


Сообщения: 2394
Благодарности: 186

Профиль | Сайт | Отправить PM | Цитировать


Скрипт закачки обновлений к Kaspersky
Кумулятивные:
Код: Выделить весь код
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Скрипт для загрузки обновлений к Kaspersky AntiVirus

import os
import datetime
import time
from ftplib import FTP

author="Александр Теленьга"

print "-----------------------------------------------------"
print "Скрипт для загрузки обновлений к Kaspersky AntiVirus"
print "Автор: "+author
print "-----------------------------------------------------"
print "Начинаем работу..."
print

flag=False

while not flag:
	try:
		ftph = FTP('ftp.downloads1.kaspersky-labs.com')
	except:
		print "Хост в ауте. Ждем..."
		time.sleep (10)
		exit
	else: 
		print "Хост живой. Начинаем скачивать..."
		flag=True
		cumul_URL="ftp://ftp.downloads1.kaspersky-labs.com/zips/av-i386\&ids-cumul.zip"
		os.system('rm -Rf /media/LAN/install/Updates/Kaspersky\ Bases/cumul/*')
		save_path="/media/LAN/install/Updates/Kaspersky\ Bases/cumul/"
		os.system('wget -c -t 100 %s' %(cumul_URL))
		os.system('mv av-i386\&ids-cumul.zip %s' %(save_path))
		print "Работа скрипта завершена."
Ежедневные (с распаковкой кумулятивных и ежедневных в соответствующие папки):
Код: Выделить весь код
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Скрипт для загрузки обновлений к Kaspersky AntiVirus

import os
import datetime
import time
from ftplib import FTP

author="Александр Теленьга"

print "-----------------------------------------------------"
print "Скрипт для загрузки обновлений к Kaspersky AntiVirus"
print "Автор: "+author
print "-----------------------------------------------------"
print "Начинаем работу..."
print

flag=False

while not flag:
	try:
		ftph = FTP('ftp.downloads1.kaspersky-labs.com')
	except:
		print "Хост в ауте. Ждем..."
		time.sleep (10)
		exit
	else: 
		print "Хост живой. Начинаем скачивать..."
		flag=True
		daily_URL="ftp://ftp.downloads1.kaspersky-labs.com/zips/av-i386\&ids-daily.zip"
		os.system('rm -Rf /media/LAN/install/Updates/Kaspersky\ Bases/daily/*')
		save_path="/media/LAN/install/Updates/Kaspersky\ Bases/daily/"
		os.system('wget -c -t 100 %s' %(daily_URL))
		os.system('mv av-i386\&ids-daily.zip %s' %(save_path))
		
		print "Начинаем извлечение из архива..."
		current_path="/media/LAN/install/Updates/Kaspersky\ Bases/current/cumul"
		os.system('rm -Rf %s/*' %(current_path))
		os.system('unzip -o /media/LAN/install/Updates/Kaspersky\ Bases/cumul/av-i386\&ids-cumul -d %s' %(current_path))
		current_path="/media/LAN/install/Updates/Kaspersky\ Bases/current/daily"
		os.system('rm -Rf %s/*' %(current_path))
		os.system('unzip -o /media/LAN/install/Updates/Kaspersky\ Bases/daily/av-i386\&ids-daily -d %s' %(current_path))

		print "Работа скрипта завершена."

-------
Микроблог
Живя в реальном мире, стремись к невероятному... Эрнесто Че Гевара
Everybody lies. (c) House M.D.
Базовая настройка Ubuntu. Документация для новичка.
Руководство по установке, начальной настройке и основам использования операционной системы Ubuntu

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:39, 07-10-2008 | #18


Аватара для censored

Пользователь


Сообщения: 70
Благодарности: 0

Профиль | Отправить PM | Цитировать


Помогите со скриптом. Нужно чтобы файлы старше 7 дней удалялись автоматом.

Отправлено: 12:55, 10-12-2008 | #19


Аватара для BuGfiX

Слакофил


Сообщения: 590
Благодарности: 130

Профиль | Сайт | Отправить PM | Цитировать


find /tmp -type f -mtime 7 -print0 | xargs -0 rm -f
добавьте это в крон

-------
If you don`t know what to use this for, you don`t need it.

http://sergey.sereda.googlepages.com...e1_userbar.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:36, 10-12-2008 | #20



Компьютерный форум OSzone.net » Linux и FreeBSD » Общий по Linux » Прочее - Маленькие скрипты на каждый день

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] win 7 каждый день переводит время psy_sln Microsoft Windows 7 6 08-11-2009 14:03
Среднестатистический человек каждый день читает в Интернете больше слов, чем в «Войне OSZone News Новости информационных технологий 0 06-11-2009 21:30
"День 7" - на носу: Windows 7 осталось ждать один день OSZone News Новости и события Microsoft 0 21-10-2009 12:30
Принтер - Принтер HP P2015n каждый день переходит в автономный режим работы BooZoka Прочее железо 0 20-05-2009 13:46




 
Переход