curlftpfs
を使用してFTPフォルダーを自動マウントしたいのですが、fstab
に次のような行を入れます。
curlftpfs#user:pwd@myhost:port/folder/ /mnt/mymountfolder Fuse allow_other,uid=1000,gid=1000,umask=0022,_netdev 0 0
起動中はネットワーク(通常はWi-Fi)がラップトップで使用できないため、通常は機能しません。 fstabの_netdev
オプションを読むと、ネットワークが利用可能な場合にのみマウントが保証されるはずですが、次のメッセージが表示されます。
Error connecting to ftp: Couldn't resolve Host myhost
別の方法として、ログイン後に自動実行スクリプトでリソースをマウントすることもできますが、もっと多くのfstabソリューションが必要です。
最後の目標は、ローカルフォルダーとftpフォルダーをcrontab rsyncで同期することです。他の提案があれば、感謝します!
あなたの目標は「ローカルフォルダーをcrontab rsyncを使用してftpフォルダーと同期させる」ことなので、FTP、rsync、unmount FTPをマウントする小さなスクリプトを作成することをお勧めします。次に、crontabからこのスクリプトを実行します。
次のようになります。
#!/bin/bash
curlftpfs user:pwd@myhost:port/folder/ /mnt/mymountfolder
#might need sleep 1 here
rsync -a /mnt/mymountfolder /local/folder
fusermount -uz /mnt/mymountfolder
スクリプトで必ずchmod + xを実行してください。
crontab -e
#m h d M wd
0 * * * * /usr/local/bin/backup-script
また、FTPフォルダーを常にマウントしたい場合は、ドライブをマウント/アンマウントするスクリプトを作成できます。 fstabにも追加する場合は、ドライブを手動でマウントできます。
fstab:
curlftpfs#user:pwd@myhost:port/folder/ /mnt/mymountfolder Fuse noauto,user,uid=1000,gid=1000,umask=0022 0 0
network-mount.sh:
#!/bin/bash
folder=/media/ftp
# check if Host is alive
ping=`/usr/bin/fping -q Host.dyn.org`
if [ $? == 0 ]; then
# check if folder is mounted
mountpoint $folder > /dev/null
if [ $? != 0 ]
# mount, timeout in case something goes wrong
then timeout 10s mount $folder
fi
else
mountpoint $folder > /dev/null
if [ $? = 0 ]
#unmount lazy (network down)
then umount -l $folder
fi
fi
これをcrontabに追加します(crontab -e):
* * * * * /usr/local/bin/network-mount.sh
また、次が実行される前にrsyncが完了しないことに注意してください。これは、自動的に(rsyncが実行されているかどうかを確認する)、または同期する必要があるデータの量(rsyncにかかる時間、最悪の場合のシナリオ)に基づいて実行できます。
他の目的でrsyncを実行しないと仮定すると、実行中かどうかは次のように確認できます。
pgrep rsync
if [ $? == 0 ]; then
# rsync running
exit
else
# rsync not running
#do stuff
fi
Curlftpfsオプションを試すことができます
connect_timeout = N(秒)。
あなたの例では(30秒で十分だと言ってください)、
curlftpfs#user:pwd @ myhost:port/folder// mnt/mymountfolder、uid = 1000、gid = 1000、umask = 0022、connect_timeout = 30 0 0 Fuse -o allow_other
または、fstabから削除してNautilusに接続し、ブックマークとして保存して起動するたびに接続することもできます。
私はその目的のためにSFTP/sshfsを使用しています
echo password | sshfs username@serverIP:/ /mnt/mountpointfolder -p portnumber -o reconnect -o password_stdin
Fstabの方法があるかどうかはわかりません。 x分ごとにこれを行うcronジョブを実行する場合は、問題ありません。フォルダが既にマウントされている場合、「接続済み」エラーが表示されます。接続が切断されている場合、別のエラーが発生し、接続は確立されません。しかし、再び接続すると、すぐに接続します... cronジョブの場合は、-o reconnect
部分を削除できます。
パスワードが含まれているため、スクリプトファイルを安全にします。