Shell脚本权限被拒绝mysqldump:在Cron中仅写时获取错误32
我有一个简单的sh文件来备份一些MySql数据库并将它们FTP到外部服务器。 如果从命令行调用,shell脚本可以正常工作,但在作为cron作业调度时不工作 所有文件都是CHMDOD777 这是剧本Shell脚本权限被拒绝mysqldump:在Cron中仅写时获取错误32,mysql,bash,shell,crontab,Mysql,Bash,Shell,Crontab,我有一个简单的sh文件来备份一些MySql数据库并将它们FTP到外部服务器。 如果从命令行调用,shell脚本可以正常工作,但在作为cron作业调度时不工作 所有文件都是CHMDOD777 这是剧本 mysqldump -uuser-ppassword databasename | gzip > shop1.gz mysqldump -uuser -password databasename | gzip > shop2.gz mysqldump -uuser -ppassword
mysqldump -uuser-ppassword databasename | gzip > shop1.gz
mysqldump -uuser -password databasename | gzip > shop2.gz
mysqldump -uuser -ppassword databasename | gzip > timesheets.gz
mysqldump -uuser -ppassword databasename | gzip > library.gz
tar -cvvf backup.tar *.gz
filename="backup.tar"
hostname="****"
username="****"
password="****"
ftp -un $hostname <<EOF
quote USER $username
quote PASS $password
passive
cd db_backups
binary
put $filename
quit
EOF
这是最后的工作脚本,以防对其他人有用:
mysqldump -u -p mydb1 | gzip > httpdocs/dump/mydb1.gz
mysqldump -u -p mydb2 | gzip > httpdocs/dump/mydb2.gz
mysqldump -u -p mydb3 | gzip > httpdocs/dump/mydb3.gz
mysqldump -u -p mydb4 | gzip > httpdocs/dump/mydb4.gz
cd /var/www/vhosts/mydomain.com/httpdocs/dump
filename="*.gz"
hostname="ftphostname"
username="ftpusernam"
password="ftppassword"
/usr/kerberos/bin/ftp -un $hostname <<EOF
quote USER $username
quote PASS $password
passive
cd db_backups
binary
prompt
mput $filename
quit
EOF
mysqldump-u-pmydb1 | gzip>httpdocs/dump/mydb1.gz
mysqldump-u-pmydb2 | gzip>httpdocs/dump/mydb2.gz
mysqldump-u-pmydb3 | gzip>httpdocs/dump/mydb3.gz
mysqldump-u-pmydb4 | gzip>httpdocs/dump/mydb4.gz
cd/var/www/vhosts/mydomain.com/httpdocs/dump
filename=“*.gz”
hostname=“ftphostname”
username=“ftpusernam”
password=“ftppassword”
/usr/kerberos/bin/ftp-un$hostname确保以下内容(初步检查)
确保您有足够的可用磁盘空间
mysqldump的增加
运行cron的用户的权限(检查所有内容chown
,chgrp
,chmod
)
确保gzip确实在工作
确保您对filename=“backup.tar”
尝试使用(/var/lib/mysql/backups/shop2.gz)等信息
最后,首先使用touch
创建文件,然后使用cron运行脚本
我也有同样的问题,并且已经把文件编到了777。通过输入gzip文件的完整路径解决了此问题。请检查运行cron job的用户是否有权使用mysql。感谢您的建议。用户与我在命令行中使用的相同。良好的检查列表。我一有时间就会听从你的建议,然后再回来找你。谢谢这是一个路径问题。谢谢你的帮助。
mysqldump -u -p mydb1 | gzip > httpdocs/dump/mydb1.gz
mysqldump -u -p mydb2 | gzip > httpdocs/dump/mydb2.gz
mysqldump -u -p mydb3 | gzip > httpdocs/dump/mydb3.gz
mysqldump -u -p mydb4 | gzip > httpdocs/dump/mydb4.gz
cd /var/www/vhosts/mydomain.com/httpdocs/dump
filename="*.gz"
hostname="ftphostname"
username="ftpusernam"
password="ftppassword"
/usr/kerberos/bin/ftp -un $hostname <<EOF
quote USER $username
quote PASS $password
passive
cd db_backups
binary
prompt
mput $filename
quit
EOF