Назад | Перейти на главную страницу

Создание исполняемого файла для дублирования папки и установка владельцев

Я не эксперт по (веб) серверам, поэтому мне нужна небольшая помощь по следующему вопросу. Я действительно не смог найти ответ через Google, вероятно, потому, что я использую неправильные ключевые слова.

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

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

Я знаю, как использовать эту команду отдельно друг от друга, но можно ли сгруппировать все эти команды в один файл и выполнить этот файл с некоторыми параметрами?

Сервер работает на CentOS 6.0 (64-бит)

Я знаю, как использовать эту команду отдельно друг от друга, но можно ли сгруппировать все эти команды в один файл и выполнить этот файл с некоторыми параметрами?

Конечно возможно. Вы можете использовать любой язык сценариев bash / perl / php / ruby ​​/ и т. Д., Что хотите / знаете. Это может быть что-то вроде следующего

#!bin/bash

src=$1
dst=$2
uid=$3
gid=$4
action=$5

if [ $# -le 4 ]
then
    echo "Usage: script.sh <source> <destination> <user owner> <group owner> <action>"
    exit
fi

if [ ! -d "${src}" ]
then
    echo "Source folder does not exist. Before proceed you must create it"
    exit
fi

...

case "$action" in
create)
   command1;
   command2;
   command3; 
;;  
delete)
   command1;
   command2;
   command3; 
;;
esac

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

Не забудьте установить разрешение на выполнение для файла сценария (chmod +x filename.sh) и выполните его либо с полным путем, либо начиная с ./filename.sh