做一个.sh脚本,其中有这么一句:cd /tmp/mysqlbackup
在shell命令行里面可以进去的,也赋予了755权限了。但是在执行sh的时候,到这句就报错了
: No such file or directory.sh: line 29: cd: /tmp/mysqlbackup
这是为什么呢,因为必须有这一句,后面会用到啊!

解决方案 »

  1.   

    ls -l  /tmp/看一下,估计你的拼写有错。
      

  2.   

    好久没写shell了,你在sh里加个if  -d  /tmp/mysqlbackup
    判断下这个目录存在不存在,然后再找原因
      

  3.   

    [root@ldap-mysql-svn-trac mysqlbackup]# ls -l /tmp/
    total 262312
    -rw-r--r-- 1 root root 268330987 Dec 15 15:02 csf_20101215.sql
    drwxr-xr-x 2 root root      4096 Dec 16 09:54 mysqlback
    drwxr-xr-x 3 root root      4096 Dec 16 09:53 mysqlbackup
      

  4.   


    加完 if -d /tmp/mysqlbackup
    之后呢,如何写啊?可以给个简单的例子吗?
      

  5.   

    [root@ldap-mysql-svn-trac mysqlbackup]# chmod +777 /tmp/mysqlbackup;
    chmod: invalid mode: `+777'
    Try `chmod --help' for more information.报错啊!
      

  6.   


    # Name: mysqlFullBackup.sh
    # PS:MySQL DataBase Full Backup.
    # Write by: skyman
    # Last Modify:2010-12-15
    #
    # Use mysqldump --help get more detail.
    #
    #  

    scriptsDir=/usr/script# define data directy
    mysqlDir=/usr/local/mysql
    # defile user,pwd
    user=root
    userPWD=123456

    dataBackupDir=/tmp/mysqlbackup
    eMailFile=$dataBackupDir/email.txt# email
    [email protected]
    [email protected]# backup file
    logFile=$dataBackupDir/mysqlbackup.log
    DATE=`date -I`echo "" > $eMailFile
    echo $(date +"%y-%m-%d %H:%M:%S") >> $eMailFile
    cd $dataBackupDir# defile filename
    dumpFile=mysql_$DATE.sql
    GZDumpFile=mysql_$DATE.sql.tar.gz
    # use mysqldump, set params
    $mysqlDir/bin/mysqldump -u$user -p$userPWD \
    --opt --default-character-set=utf8 --extended-insert=false \
    --triggers -R --hex-blob --all-databases \
    --flush-logs --delete-master-logs \
    --delete-master-logs \
    -x > $dumpFile
    # zip backup file
    if [[ $? == 0 ]]; then  tar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1  echo "BackupFileName:$GZDumpFile" >> $eMailFile  echo "DataBase Backup Success!" >> $eMailFile  rm -f $dumpFile
    # Delete daily backup files.  cd $dataBackupDir/daily  rm -f *
    # Delete old backup files(mtime>2).  $scriptsDir/rmBackup.sh
    # Move Backup to anthor machine# Move Backup Files To Backup Server Start.

    #  $scriptsDir/rsyncBackup.sh
    #  if (( !$? )); then
    #    echo "Move Backup Files To Backup Server Success!" >> $eMailFile
    #    else
    #    echo "Move Backup Files To Backup Server Fail!" >> $eMailFile
    #  fi
    # Move Backup Files To Backup Server Stop.else  echo "DataBase Backup Fail!" >> $emailFilefi# write log fileecho "--------------------------------------------------------" >> $logFilecat $eMailFile >> $logFile# send emailcat $eMailFile | mail -s "MySQL Backup" $eMail
    cat $eMailFile | mail -s "MySQL Backup" $eMail2
      

  7.   

    使用root用户,chmod -R a+w+r /tmp/mysqlbackup
    然后再执行你的脚本试试