Как я могу создать файл с некоторым текстом в нем с помощью сценария bash

Я бы сначала установил ZIP, а затем запланировал резервное копирование.

zip system.zip /etc/* /var/www/* /var/lib/mysqlbackup/default/* && sleep 3 |  mutt -a "system.zip" -s "Daily backup as of $(date +%x)" -- user@domain.com && rm -rf system.zip

Затем crontab it

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

В самом низу файла bashrc добавьте:

alias backup='zip system.zip /etc/* /var/www/* /var/lib/mysqlbackup/default/* && sleep 3 |  mutt -a "system.zip" -s "Daily backup as of $(date +%x)" -- laith.alobaidy@yahoo.com && rm -rf system.zip '

Таким образом, ваш crontab будет похож на

0 0 * * * backup

И вы можете запустить эту резервную копию в любое время с помощью собственной команды backup .

0
03.05.2019, 11:03
1 ответ

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

#!/bin/bash

current_path="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
mkdir -p "$current_path/class"
cd "$current_path/class"
if [ -f "$1.php" ];
then
   exit 1
else
   echo "class $1
{
}" > "$1.php"
fi

Существует также проблема использования "$@", это то, что вы хотели. Вы имели в виду "$*"?

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

Запуск shellcheckобнаружил бы большинство этих ошибок.

0
28.01.2020, 03:45

Теги

Похожие вопросы