Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Shell脚本权限被拒绝mysqldump:在Cron中仅写时获取错误32_Mysql_Bash_Shell_Crontab - Fatal编程技术网

Shell脚本权限被拒绝mysqldump:在Cron中仅写时获取错误32

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

我有一个简单的sh文件来备份一些MySql数据库并将它们FTP到外部服务器。 如果从命令行调用,shell脚本可以正常工作,但在作为cron作业调度时不工作

所有文件都是CHMDOD777

这是剧本

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