OK, I am a little new to AIX 5.3 and also to scripting. I have a shell script that I wrote and am having difficulty pushing specific files by the system date. Here is my script:
#!/usr/bin/sh
RSYNC=/usr/local/bin/rsync
SSH=/usr/local/bin/ssh
KEY=<path> somekey.key
RUSER=mike
RHOST=bulldog
RPATH=<path> sync_test (this is the line for the file to be moved to)
LPATH=<path> (this is the line where the file is moving from)
$RSYNC -arpe "$SSH -i $KEY" $LPATH $RUSER@$RHOST:$RPATH
For security reasons I removed the paths and certain file names
I am thinking there is either a seperate line for the date information or the date is at the end of the line from LPATH.
Do you want to push only files that have been updated?
You're already doing this with --archive..since it assumes --times. So only those files that are newer than the destination will copy. Keep in mind to check the time of your boxes (ntp a huge plus here)
Do you want only push files that have updated in a timeframe you choose?
If you're wanting to do something that only sends files that have been updated in a timeframe which you set, you might want to consider a staging script to analyze which files you need to send...thn use rsync to send them.
On our production server everyday, "1" file will be generated and stored in the starting directory. Now I have to find a way to move the newest file (by date) to be pushed to the DEVL server. Remind you I have to keep all other files in the same directory. So, I figure by "date" or "system date" rysnc will know to move that particular file.
If I understand correctly I think you're pretty much there. You might want to remove the -e from your rsync which would prevent files from being updated if they did not already exist. You can also drop the -pr from your options..it is redundant. Using -a assumes (-rlptgoD).
So try just:
rsync -a </source/dir/> </desintation/dir/>
Here is an example on how I can keep a dev server in synch with the production. Notice I have 3 files in 3 directories in my "source" for testing. I'm using the same server...but that does not matter here.
I run rsync, in recursive mode and enable --verbose and --stats for testing.
jnetnix@nix$ rsync -a \
--verbose --stats \
/tmp/Testing/Srcfiles/ localhost:/tmp/Testing/DevFiles/
jnetnix@localhost's password:
sending incremental file list
./
dir1/
dir1/file1
dir1/file2
dir1/file3
dir2/
dir2/file1
dir2/file2
dir2/file3
dir3/
dir3/file1
dir3/file2
dir3/file3
Number of files: 13
Number of files transferred: 9
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 197
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 576
Total bytes received: 198
sent 576 bytes received 198 bytes 172.00 bytes/sec
total size is 0 speedup is 0.00
I can re-run rsync all day long and nothing that is not new will transfer. you could even cron this part once an hour or so.
jnetnix@nix:/tmp/Testing$ rsync -a \
--verbose --stats \
/tmp/Testing/Srcfiles/ localhost:/tmp/Testing/DevFiles/
jnetnix@localhost's password:
sending incremental file list
Number of files: 13
Number of files transferred: 0
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 197
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 213
Total bytes received: 15
sent 213 bytes received 15 bytes 65.14 bytes/sec
total size is 0 speedup is 0.00
If I update a file, or two, they will be the only ones sent to the destination.
jnetnix@nix:/tmp/Testing$ touch ./Srcfiles/dir1/file4
jnetnix@nix:/tmp/Testing$ touch ./Srcfiles/dir2/file4
jnetnix@nix:/tmp/Testing$ rsync -a \
--verbose --stats \
/tmp/Testing/Srcfiles/ localhost:/tmp/Testing/DevFiles/
jnetnix@localhost's password:
sending incremental file list
dir1/
dir1/file4
dir2/
dir2/file4
Number of files: 15
Number of files transferred: 2
Total file size: 0 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 219
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 319
Total bytes received: 59
sent 319 bytes received 59 bytes 108.00 bytes/sec
total size is 0 speedup is 0.00
jnetnix@nix:/tmp/Testing$