Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Reverse prior batch job (without simply rewriting the script) Post 303038502 by stomp on Wednesday 4th of September 2019 05:58:51 PM
Old 09-04-2019
It may be not that simple, to reverse a script.

For example, if you have a file consisting of a and b characters. Your normal script replaces a with b. How do you reverse that? It's not possible to know original a's had been.

That maybe possible or impossible depending on the specific task. But there's hardly a generic way to do this.

If the task is about manipulating files you may take a backup before the task via cp, tar, rsync, ... and reset the state to that backup when needed.

What are you about to do? Why do want to reverse an action? What exactly do you want to reverse?

And of course: What's your OS environment and programming language/shell?

Last edited by stomp; 09-05-2019 at 03:09 AM..
 

9 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

windows scripting for a batch job

I have been doing unix scripting for quite awhile and there seems to be a wealth of information on it. Now I am working on migrating an intel based application to a new server. I need to modify some existing scripts, but am having trouble finding information on windows scripting, a forum similar... (2 Replies)
Discussion started by: MizzGail
2 Replies

2. Shell Programming and Scripting

read input file for batch job

hi all, I am a newbie in unix shell script. May I know how to write a bacth job to read a list of files afrom the inout file and do the chmod ? Thanks. i.e. inside input.txt ==== a.txt b.txt c.txt and I want to write a batch job to read the input .txt and do the chmod 755 for all 3... (14 Replies)
Discussion started by: kinmak
14 Replies

3. UNIX for Dummies Questions & Answers

Regarding interactive ID of batch job

Hi all, We are running a batch job using Unix script. This batch job is running daily to get data from a Mainframe database and to load our tables. We are using an interactive ID for the batch job. If we removed that interactive ID, the batch job fails. What's my question is.. Is the... (1 Reply)
Discussion started by: pradeep.edara
1 Replies

4. Shell Programming and Scripting

A Batch job to delete files from various directories

Hi, I have a shell script to find files older than 'X' days ($2) in directory path ($1) and delete them. Like this: my_file_remover.sh /usr/home/c 90 Now, I need to modify this script and add it in CRON, so that it checks other directories also. Like: my_file_remover.sh /usr/home/c... (3 Replies)
Discussion started by: guruparan18
3 Replies

5. Shell Programming and Scripting

Help rewriting my KSH-script...

Hi! I'm a beginner at scripting, but have managed to complete a working KSH-script.. :D But since this is going to production i a few weeks, I would like to optimize it and make it better structured! The idéa of the script is to collect data from the database, put it in a file, and then... (2 Replies)
Discussion started by: linsto
2 Replies

6. AIX

Script to start a remote batch job on another server

Hi , I am trying to execute one script residing on server B from server A and in automated way but with a trigger. My main quetion are 1) How I will login to the remote server automatically with user name and password. ( rsh or any other way ?) 2) Once logged in I need to execute... (2 Replies)
Discussion started by: agent47
2 Replies

7. UNIX for Dummies Questions & Answers

How to create a batch job ?

Hi In unix how to create a batch job and Is there any command to close file in unix. Please help me I am new to unix world (6 Replies)
Discussion started by: vinay.h4
6 Replies

8. Solaris

Can a batch job truly have a PID of 1?

Is it possible for a process id of 1. Is there anything special about 1 or 8 ? (7 Replies)
Discussion started by: Harleyrci
7 Replies

9. Windows & DOS: Issues & Discussions

To run job in parallel in batch

Hi, I am using a batch file to run 2 or more shutdown batch for each of my server like below: Shutdown_serverA.bat Shutdown_serverB.bat ... Is there anyway i can do this in parallel instead of serially:confused: ServerA & ServerB shutdown at the same time in one click (batch). (4 Replies)
Discussion started by: beginningDBA
4 Replies
task-sync(5)                                                       User Manuals                                                       task-sync(5)

NAME
task-sync - A tutorial for the task(1) data synchronization capabilities. DESCRIPTION
Taskwarrior has built-in support for synchronization, which can be used to keep two task databases up to date, regardless of which one is used. This capability can also be used to keep a backup copy of your task database on another machine. Taskwarrior can use various protocols for transferring the data. HOW IT WORKS
If you were to manually attempt to keep two separate task databases up to date, you would need to inspect both databases, and detect changes that occurred in each one. Those changes would need to be migrated to the other database, while being careful not to miss a change, and not to confuse an 'add' in one with a 'delete' in the other. The synchronization feature does just this. It can transfer task databases, compare tasks, and apply changes where necessary. NEW COMMANDS
Taskwarrior has 'pull', 'push' and 'merge' commands which perform the steps necessary to move files around and combine them. In the common use case, you would only need to use the 'merge' command. These commands take an argument that is a URI, which indicates where the remote database resides. To be clear, the local database always refers to your ~/.task directory (unless overridden), and the remote database is always specified by URI. MERGE
The merge command will fetch task data via URI and combine it with the local task database. The syntax is: task merge [<URI>] The URI is optional if the merge.default.uri configuration variable is set. The URI may point to a different directory, or it may be a different computer. Here is an example of the merge command: $ task merge ~/work/ This URI (~/work/) is a path name, which means the remote database is on the same computer. Taskwarrior will fetch the data from the URI, and merge it with your local data in ~/.task. When complete, you will be asked whether you would like to push the combined data back to the remote location specified by the URI. This is useful if you are keeping two task databases synchronized, but it can be turned off. See CONFIGURATION. Note that a merge operation is not atomically reversible. You could however run the 'task undo' command repeatedly to undo the effects. PUSH
The push command will copy the local task database to the specified URI. The syntax is: task push [<URI>] The URI is optional if the push.default.uri configuration variable is set. This command is useful for making backup copies of your task database. Note that the task files at the location specified by the URI are simply overwritten, so don't expect any merging to occur. Misused, push can be dangerous. PULL
The pull command will copy a task database from a URI to the local task database (~/.task by default). The syntax is: task pull [<URI>] The URI is optional if the pull.default.uri configuration variable is set. This command is useful for restoring a backup copy of your task database. Note that your local task database files will be simply overwritten by the files obtained from the location specified by the URI, so don't expect any merging to occur. Misused, pull can be dangerous. URI TYPES
The most basic URI is a path name on the local machine. An example would be: /home/bob/.task/ All the other URIs allow access to remote machines. The first uses SSH and scp (either form can be used): ssh://[user@]host[:port]/absolute/path/to/.task/ [user@]host:/absolute/path/to/.task/ In both cases paths are considered to be absolute. You can specify paths relative to the users home directory as follows: ssh://[user@]host[:port]/.task/ [user@]host:.task/ or even shorter [user@]host:.task/ Remark: Since taskwarrior simply calls the scp binary you can specify very much anything that scp would accept, e.g. host configurations from ~/.ssh/config or ~username expansion: ssh://configured-host/~[username]/.task/ configured-host:~[username]/.task/ Rsync is another supported protocol that minimizes network traffic, by a clever algorithm that doesn't copy files that have not changed: rsync://[user@]host.xz[:port]/path/to/.task/ Curl supports several protocols that can transfer data using HTTP, HTTPS and FTP: http://host[:port]/path/to/.task/ https://host[:port]/path/to/.task/ ftp://[user@]host[:port]/path/to/.task/ You can use single quotes to encapsulate user names that contain delimiting characters like '@', '/' or ':', e.g.: ssh://'user@name'@host/ Remember to escape the quotes on your shell: $ task push ftp://'user@name':host/ CONFLICTS
When modifications on the local and remote machine conflict, for example if both machines change the project name of the same task to dif- ferent values, then Taskwarrior automatically selects the most recent change. Thus, there are no conflicts. EXAMPLE - Backup on another machine One very good use of 'push' is to make backup copies of your task database in another location. Suppose your task database is kept in the usual place, in the ~/.task directory, and you wanted to make a backup copy in ~/backup. You would use this command: $ task push ~/backup/ This would copy the files in ~/.task to ~/backup, overwriting the files that were already in ~/backup. To backup your files to another machine, you could use: $ task push user@host:backup This could be improved by setting the push.default.uri configuration variable and then relying on the default, like this: $ task config push.default.uri user@host:backup and then you need only run the push command: $ task push and the default push URI will be used. If you wanted to restore a backup, you simply use the pull command instead: $ task pull user@host:backup This can be simplified by setting the pull.default.uri configuration variable and then relying on the default, like this: $ task config pull.default.uri user@host:backup Note that pull and push will blindly overwrite the task files without any merging. Be careful. EXAMPLE - Keeping two task databases synchronized The most common synchronization will be to keep two task databases synchronized on different machines. Here is a full example, including setup that illustrates this. Suppose there are two machines, named 'local' and 'remote', for simplicity. Taskwarrior is installed on both machines. The different machines are indicated here by the prompt. Suppose Alice enters two tasks on her local machine: local> task add Deliver the new budget proposal due:tuesday local> task add Set up a meeting with Bob Then later adds a task on the remote machine: remote> task add Present the budget proposal at the big meeting due:thursday Now on the local machine, Alice merges the two task databases: local> task merge alice@remote:.task Would you like to push the changes to 'alice@remote:.task'? Y Taskwarrior has combined the two task databases on local, then pushed the changes back to remote. Now suppose Alice changes the due date for task 1 on remote: remote> task 1 due:wednesday Now on the local machine, Alice sets up a default URI and autopush: local> task config merge.default.uri alice@remote:.task local> task config merge.autopush yes Now Alice can simply run merge to make sure that the new due date is copied to the local machine: local> task merge This time the URI is determined automatically, and after the merge the files are pushed back to the remote machine. In a similar way, the remote machine can also be configured to merge from the local machine and push back to it. Then it is just a matter of Alice remembering to merge now and then, from either machine, to have her data in two (or even more) places. CONFIGURATION
By setting these configuration variables, it is possible to simplify the synchronization commands, by relying on the defaults or alias names. merge.autopush=yes|no|ask This controls whether the automatic push after a merge is performed, not performed, or whether the user is asked every time. The default value is 'ask'. merge.default.uri=<uri> Sets a default URI so that just the 'task merge' command be run without the need to retype the URI every time. You can also use this configuration scheme to set alias names, e.g. set merge.desktop.uri and run 'task merge desktop'. push.default.uri=<uri> Sets a default URI so that just the 'task push' command be run without the need to retype the URI every time. You can also use this configuration scheme to set alias names, e.g. set push.desktop.uri and run 'task push desktop'. pull.default.uri=<uri> Sets a default URI so that just the 'task pull' command be run without the need to retype the URI every time. You can also use this configuration scheme to set alias names, e.g. set pull.desktop.uri and run 'task pull desktop'. Note that, when using SSH/scp, hostnames will be expanded due to the ssh configuration file ~/.ssh/config. EXTERNAL DEPENDENCIES
Depending on the URI protocols used, the utilities 'scp', 'rsync' and 'curl' must be installed and accessible via the $PATH environment variable. If you have deleted your ~/.task/undo.data file to save space, you will be unable to merge. The change transactions stored in the undo.data file are used for synchronization. CREDITS &; COPYRIGHTS Copyright (C) 2006 - 2012 P. Beckingham, F. Hernandez. The sync capabilities were written by J. Schlatow. Parts copyright (C) 2010 - 2012 J. Schlatow. Taskwarrior is distributed under the MIT license. See http://www.opensource.org/licenses/mit-license.php for more information. SEE ALSO
task(1), taskrc(5), task-faq(5), task-color(5), task-tutorial(5), ssh_config(5) For more information regarding task, the following may be referenced: The official site at <http://taskwarrior.org> The official code repository at <git://tasktools.org/task.git/> You can contact the project by writing an email to <support@taskwarrior.org> REPORTING BUGS
Bugs in task may be reported to the issue-tracker at <http://taskwarrior.org> task 2.0.0 2012-03-17 task-sync(5)
All times are GMT -4. The time now is 01:27 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy