Aquí está mi pregunta en StackExchange hace 2 días. enlace Alguien me sugirió que preguntara aquí. ¿Podría alguien ayudarme a resolver esto?
============
Intenté lanzar un script de mysqldump para la copia de seguridad diaria por launchd y también por Carbon Copy Cloner (CCC). La secuencia de comandos funciona bien en la línea de comandos. Sin embargo, viene con un archivo vacío bajo launchd o CCC.
Mientras ejecuté manualmente el comando sh mysqldump.sh
, se creará un archivo <DATE>.sql.gz
. Y si launchd / CCC llamó al script, también se creará un archivo <DATE>.sql.gz
. Sin embargo, el tamaño del archivo será de 2 0B.
Aquí está el contenido de mi archivo plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.MySQL.crontab</string>
<key>Program</key>
<string>/bin/mysqldump.sh</string>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/AlTest1.err</string>
<key>StandardOutPath</key>
<string>/tmp/AlTest1.out</string>
<key>StartCalendarInterval</key>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>6</integer>
<key>Minute</key>
<integer>0</integer>
</dict>
</dict>
</plist>
Y el estado de launchd para esta lista es - 0 com.MySQL.crontab
Aquí está el script para mysqldump, que fue creado por Schulz con una ligera modificación
#!/bin/sh
# *************************************************************
# file: mysqldump.sh
# date: 2015-03-27
# author: (c) by Marko Schulz - <[email protected]>
# description: Get a mysqldump of all mysql databases.
# *************************************************************
dbUsername="me"
dbBackup="/Backup/MySQL_backup"
date=$( date +%Y%m%d )
find $dbBackup/ -mtime +30 -type f -name '*.sql.gz' -exec rm -rf {} ';' >/dev/null 2>&1
mysqldump -u $dbUsername --all-databases | gzip > ${dbBackup}/${date}.sql.gz 2>&1
¿Qué podría hacer para resolver este problema?