LINUX.ORG.RU

Сообщения SWAROVSKI

 

Удалить все текстовые файлы без find

Форум — Development

Здравствуйте.

Студент. Сдаю лабу по UNIX.

Задание:

Удалить все текстовые файлы из заданного каталога

Я не долго думая, сую ему этот код:

find /DIR -name "*.txt" | xargs rm

А он говорит, что не нужен мне find, делай мол циклы. Хотя про это в задании не сказано.

Я вот набросал:

if test "$1" 
	then
        
        cd "$1";

        ТУТ ЦИКЛ, в котором мы идем по всем файлам

            if  имя файла == *.txt
        	rm его (удаляем его)
            fi

        КОНЕЦ ЦИКЛА
        
    else
  		echo Usage: noparam
fi

Можете русский язык перевсти на BASH, пожалуйста.

Перемещено beastie из general

 

SWAROVSKI
()

Не работает велосипед pwd на сях

Форум — Development

Ребят, помогите, пожалуйста, написать велосипед pwd на сях.

Вот, что набросал, получаю «ошибку сегментации (сделан дамп памяти)».

Уверен, что тут что с выделенмем памяти под эти указателями...

Указатели никогда не трогал почти, под unux пишу впервые.

Выручите, посмотрите, пожалуйста:

#include <iostream>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <dirent.h>

using namespace std;

int main()
{
    DIR* dir;
    struct  dirent* entry;
    struct stat st;
    char *cur_ent;
    char find_elem[100][20];
    char *last;
    char *end;


    strcpy(end,"home");
    strcpy(last, "OS3cpp"); // OS3cpp - название проги

    while(last!=end) {
        strcat(cur_ent,"//");
        printf("%s", last);
        strcat(cur_ent, last);
        chdir("..");
        dir = opendir(".");
        int i = 0;
        while ((entry = readdir(dir))!=NULL) {
            if(strcmp(entry->d_name, ".") == 0 && strcmp(entry->d_name, "..") == 0){
                stat(entry->d_name,&st);
                    if(S_ISDIR(st.st_mode)) {
                        strcpy(find_elem[i++], entry->d_name);
                    }
            }
        }

        int t = 0;
        while(t == 0) {
            i++;
            chdir(find_elem[i]);
            dir = opendir(".");
            while((entry = readdir(dir))!=NULL) {
                if(entry->d_name == last) {
                    chdir("..");
                    strcat(last,find_elem[i]);
                    t=1;
                } else chdir("..");
                t=1;
            }
        }
    }
    return 0;
}

Перемещено leave из general

 

SWAROVSKI
()

Shell - сравнить два каталога на повторяющиеся файлы.

Форум — General

Вывести на экран имена файлов из одного каталога, отсутствующих в другом каталоге. Имена каталогов задаются в виде агрументов.

Вначале можно подсчитать количество файлов:

num1=`cd $1 && find * -maxdepth 0 -type f | wc -w`
Затем удобно было бы загнать листинг файлов из обоих каталогов в массивы (как?) Ну а дальше - в циклах сравнить названия и вывести те, которые не повторяются:
 flg=0
 for ((i=1; i<$num1; i++)) do
    flg=0
    for ((j=1; j<$num2; j++)) do
      if [ "$i" -ne "$j" ]
        then if [ "$массив1[$i]" = "$массив2[$j]" ] then flg = 1 fi
      fi
    done
    if [ $flg != "1" ] then echo $массив1[$i] fi
 done
Что можете предложить / чяднт? Согласен, после C++ на shell перейти не очень просто...

 

SWAROVSKI
()

Bash - Резервное копирование файлов, заданных аргументами

Форум — General

Имеется такое задание:

Написать командную процедуру, которая создает каталог для резервного копирования файлов.
Имена каталога и файлов указываются в виде аргументов.

Я третий день изучаю bash и набросал очень примитивный код:


#!/bin/bash
mkdir $1 && 
cd $1 && 
tar -czf $1-`date +%F--%H-%M`.tar.gz $2

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

Сейчас держу в уме такой алгоритм: принимать три и более аргументов, где первый аргумент — каталог, куда архивируем, второй аргумент — сколько файлов архивируем, третий и последующие аргументы — файлы, которые архивируем. Далее цикл от 1 до $2 , где в теле архивируются все файлы, заданные аргументами $3 и далее.

Но мне кажется, что этот способ не рационален...

Может, можно как-то проще это реализовать?

Что-нибудь посоветуете

 

SWAROVSKI
()

Проблемы с запуском сервера minecraft через sudo -u

Форум — General

Здравствуйте.

У меня есть небольшой проект на php, в котором я сначала получаю:

$id = $row['id'];

Потом я выполняю такую команду (собственно, запускаю майнкрафт сервер):

'screen -dmS server_'.$id.' sudo -u s'.$id.' java -Xincgc -Xmx1000m -Xms100m -jar craftbukkit.jar nogui;';

И получаю такую ошибку:

Error: Could not find or load main class org.bukkit.craftbukkit.Main

Я пробовал максимально упрощать скрипт запуска и понял, что ошибка возникает из-за того, что я пытаюсь запустить сервер не из-под рута. Из под рута всё отлично.

P.S. Java устанавливал от root'а. Юзеры, как вы поняли, всё время разные. Быть может проблема в том, что что-либо запустить джавой можно только от рута, и это нужно где-то поменять?

P.P.S. sudo -u s'.$id.' --- буква s Нелишняя.

Debian 6

 

SWAROVSKI
()

OPENVPN проблемы

Форум — General

Здравствуйте. Мой интернет-провайдер блокирует почти все порты, что даже wmk запустить нельзя. Я попробовал решить эту проблему, подняв VPN сервер на облаке от селектела в Питере. Всё прошло успешно, но со временем меня перестал устраивать пинг (начал играть в онлайн-игрушки). Т.к. сам я с Подмосковья, то решил взять VDS к себе поближе у FirstdVDS, но вот VPN там почему-то подниматься совсем не хочет...

Всё, как и с селектелом, делаю по этому ману - http://howitmake.ru/blog/ubuntu/110.html

Но получаю ошибку при коннекте:

Sat Jun 14 21:48:10 2014 OpenVPN 2.3.4 x86_64-w64-mingw32 [SSL (OpenSSL)] [LZO] [PKCS11] [IPv6] built on Jun  5 2014
Sat Jun 14 21:48:10 2014 library versions: OpenSSL 1.0.1h 5 Jun 2014, LZO 2.05
Sat Jun 14 21:48:10 2014 MANAGEMENT: TCP Socket listening on [AF_INET]127.0.0.1:25340
Sat Jun 14 21:48:10 2014 Need hold release from management interface, waiting...
Sat Jun 14 21:48:11 2014 MANAGEMENT: Client connected from [AF_INET]127.0.0.1:25340
Sat Jun 14 21:48:11 2014 MANAGEMENT: CMD 'state on'
Sat Jun 14 21:48:11 2014 MANAGEMENT: CMD 'log all on'
Sat Jun 14 21:48:11 2014 MANAGEMENT: CMD 'hold off'
Sat Jun 14 21:48:11 2014 MANAGEMENT: CMD 'hold release'
Sat Jun 14 21:48:11 2014 Socket Buffers: R=[8192->8192] S=[8192->8192]
Sat Jun 14 21:48:11 2014 Attempting to establish TCP connection with [AF_INET]180.120.253.239:1194
Sat Jun 14 21:48:11 2014 MANAGEMENT: >STATE:1402768091,TCP_CONNECT,,,
Sat Jun 14 21:48:32 2014 TCP: connect to [AF_INET]180.120.253.239:1194 failed, will try again in 5 seconds: Connection timed out (WSAETIMEDOUT)
Sat Jun 14 21:48:37 2014 MANAGEMENT: >STATE:1402768117,TCP_CONNECT,,,

Никакого понятия не имею, что не так... Просто не коннектит и всё! Конфиг сервера:

#Порт для подключения, стандартный 1194, но вы можете выбрать тот который больше нравится
port 1194
#Тип соединения TCP или UDP
proto tcp
#Тин тоннеля
dev tun 
#Список сертификатов
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
# При подключении мы будем попадать в эту сеть
server 192.168.100.0 255.255.255.0
#Сохраняем выдаенные адреса клиентов в файл
ifconfig-pool-persist ipp.txt
#Проверяем состояние канала
keepalive 20 120 
#использовать сжатие
comp-lzo 
persist-key
persist-tun
#включаем логирование 
status openvpn-status.log 
#уровень логирования 
verb 3
#Определяем наш OpenVPN сервер в качестве шлюза по умолчанию
push "redirect-gateway" 
#Разрешаем соединения между клиентами
client-to-client
#добавляем маршруты
route 192.168.100.0 255.255.255.0
#Указываем DNS сервер
push "dhcp-option 8.8.8.8"

Конфиг клиента:

##############################################
# Sample client-side OpenVPN 2.0 config file #
# for connecting to multi-client server.     #
#                                            #
# This configuration can be used by multiple #
# clients, however each client should have   #
# its own cert and key files.                #
#                                            #
# On Windows, you might want to rename this  #
# file so it has a .ovpn extension           #
##############################################

# Specify that we are a client and that we
# will be pulling certain config file directives
# from the server.
client

# Use the same setting as you are using on
# the server.
# On most systems, the VPN will not function
# unless you partially or fully disable
# the firewall for the TUN/TAP interface.
;dev tap
dev tun

# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one.  On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap

# Are we connecting to a TCP or
# UDP server?  Use the same setting as
# on the server.
proto tcp
;proto udp

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote 180.120.253.239 1194
;remote my-server-2 1194

# Choose a random host from the remote
# list for load-balancing.  Otherwise
# try hosts in the order specified.
;remote-random

# Keep trying indefinitely to resolve the
# host name of the OpenVPN server.  Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite

# Most clients don't need to bind to
# a specific local port number.
nobind

# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody

# Try to preserve some state across restarts.
persist-key
persist-tun

# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here.  See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]

# Wireless networks often produce a lot
# of duplicate packets.  Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings

# SSL/TLS parms.
# See the server config file for more
# description.  It's best to use
# a separate .crt/.key file pair
# for each client.  A single ca
# file can be used for all clients.
ca ca.crt
cert ice.crt
key ice.key

# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server".  This is an
# important precaution to protect against
# a potential attack discussed here:
#  http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server".  The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server

# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1

# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x

# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo

# Set log file verbosity.
verb 3

# Silence repeating messages
;mute 20

 

SWAROVSKI
()

RSS подписка на новые темы