Shell Scripting for Directory Backup
Shell Scripting for Directory Backup
The steps to create the shell script include: 1) Prompt the user to enter the directories or files they wish to back up, 2) Ask the user for a name to save the backup file with a .tar extension, and 3) Request the location for saving the backup. The script will then use the 'tar' command with options -cvf to create a tarball that includes the specified directories, excluding the output file name itself. For example, if the user inputs to backup /etc, /var/log, and /home/mydirectory, with the backup named mybackup.tar and saved in /home/myhome, the command would construct as: tar –cvf /home/myhome/mybackup-10-09-2017.tar –exclude='mybackup-10-09-2017.tar' /etc /var/log /home/mydirectory .
To schedule a shell script to run at 1:02 am every Friday night, you use the Unix 'cron' utility. First, open the cron editor using crontab –e, then add a new line for the cron job schedule with the time and command to execute the script. The cron timing syntax for 1:02 am every Friday is '2 1 * * 5', where '2' indicates the minute, '1' indicates the hour, and '5' is for Friday. After adding the cron schedule line like '2 1 * * 5 /path/to/script', you should save the changes in the cron editor. You can verify the scheduled tasks by running crontab –l, which lists all the current cron jobs .
The modification involves using positional parameters $1, $2, and $3 for inputs instead of interactive prompts. $1 holds the directories or files to back up, $2 stores the backup file name, and $3 designates the backup location. If fewer than three variables are provided, the script should output a message that incorrect syntax is used and show the correct syntax usage. This could alert the user to input all necessary information by printing an error message and an example of the correct command line usage. For example, it should display: 'Incorrect syntax: please enter the following syntax.' Followed by an example: mybackup "/etc /var/log /home/mydirectory" "mybackup-10-09-2017.tar" "/home/myhome" .