2010/10/26 deardo <[email protected]>: > SOURCE=/mnt/SOURCES/* Ini masalahnya. Kenapa pake * lagi?
Scriptnya di paling atasnya ditulis pake bash, jadi * akan diexpand lagi. Kalo /mnt/SOURCES ada isinya "file 1" dan "foo", maka $SOURCES isinya adalah "file 1 foo". Ini bukan karena Linuxnya yg tidak support tapi karena scriptnya salah. Kalo cuma untuk rsync -a, cukup menyebutkan directorynya: rsync -a /mnt/SOURCES/ /var/tujuan/ Jangan lupa itu "/" di belakang directory penting buat rsync, beda hasilnya kalo gak pake "/". Catatan tambahan: - Opsi -a di rsync itu sama dengan -rlptgoD, jadi tidak perlu menyebutkan -r lagi. - Biasakan mengapit isi shell variable dengan quotes: SOURCE="/blah" (single quotes kalo gak mau expansion) - Biasakan mengapit shell variable dengan quotes juga ketika menggunakannya: rsync -a "$SOURCE" "$DEST" kalo tidak diquote dan isi variablenya ada spasinya ntar bilangnya Linuxnya nggak support lagi :-) - Saya sering ketemu banyak orang menyesal menggunakan nama file yg berdasarkan tanggal tapi menulisnya tidak tahun-bulan-tanggal, karena tidak bisa disort. - Baris terakhir itu bisa dibikin lebih efisien dengan: find /var/BACKUP/DSCTL -maxdepth 1 -type d -mtime +30 -print0 | xargs -0 rm -vrf tidak perlu pake for loop dan tidak perlu pake * lagi (itu udah kerjaannya si find). Lebih mudah lagi pake tmpreaper (atau sejenisnya, seperti tmpwatch): tmpreaper +30d /var/BACKUP/DSCTL Ronny -- FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab Unsubscribe: kirim email ke [email protected] Arsip dan info milis selengkapnya di http://linux.or.id/milis
