I had a request come in to transfer a file from a Solaris box to a Windows VM. It needed to copy at 6am and only run on Tuesday to Saturday - being new to Solaris I thought I'd log this one for future reference......
Basic steps
1. create a user account on the receiving (Windows) box
2. create a user account on the sending (Solaris) box
3. create a .netrc file
4. create a batch file
5. edit the crontab file (Solaris account)
6. store passwords in a secure location
Step 1
Create the Windows user account and give it permissions to required area - in this case a FTP site was setup on a IIS box with the account having rights to the site.
Step 2
I created a user account, ftpjob, on the Solaris box and made sure the account had rights on the relevant area.
ls -al (will show you permissions)
In this case the account created belonged to the group that had ownership along the full path.
It's home area was /export/home/ftpjob
Step 3
create the .netrc file in the root of the accounts home area (which allows for automating of the job).
touch .netrc
Change the file permissions
chmod 600 .netrc
I added the following text to the file:
machine <name or ip> login <windows user account> password <windows user account> macdef init
bin
lcd /<solaris-local-file-path>
cd /<non-root-path-on-windows-box>
put <file-name>
quit
<press enter twice then save file :wq!>
Step 4
Create a file, I'll call it ftpbatch with the following text in the home area
#!/usr/bin/ksh
# Comments.....
# links to the .netrc file in the ftpuser home area
echo "`date` : Start script"
ftp <IPAddress> <Port number if different from default>
echo "`date` : Finish script"
Make sure you set the correct permissions on the file:
chmod 755 ftpbatch
If you don't want anyone else to read the contents set the permissions as:
chmod 700 ftpbatch
Step 5
To schedule the task crontab needs to used - by default I've found that a text editor is not specified in the user environment. I enabled this by editing the .profile file of ftpuser (in the accounts home directory).
To obtain the vi path type:
which vi
Output was:
/usr/bin/vi
Either make a temporary change so crontab uses vi or permenately add the entry in the .profile export EDITOR=/usr/bin/vi
If you add the entry into the .profile then run: . .profilewhich will reload the environmental settings.
You can now edit the crontab settings by running: crontab -e
The request is for the job to run at 0600hrs every week (Tuesday - Saturday) and the crontab has edited as follows:
# Comments
00 6 * * 2-6 /export/home/ftpuser/ftpbatch >> /tmp/error.log 2>&1
The double >> will append an entry to the log file
Step 6
Store the passwords in a safe location
No comments:
Post a Comment