Я бы сначала установил 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
.
Единственная проблема, которую я вижу, это отсутствие кавычек, так что если в именах каталогов/файлов есть пробелы, это пойдет не так.
#!/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
обнаружил бы большинство этих ошибок.